From cef98f187186233582f52ab9a2c20ce37f48cb5f Mon Sep 17 00:00:00 2001 From: shibbo Date: Tue, 27 Oct 2020 07:44:47 -0400 Subject: [PATCH] NerveStateBase decompilation --- include/al/nerve/NerveStateBase.h | 21 +++++++++++++ include/al/nerve/NerveStateCtrl.h | 28 ++++++++++++++--- source/al/nerve/NerveStateBase.cpp | 48 ++++++++++++++++++++++++++++++ source/al/nerve/NerveStateCtrl.cpp | 6 ++++ 4 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 include/al/nerve/NerveStateBase.h create mode 100644 source/al/nerve/NerveStateBase.cpp create mode 100644 source/al/nerve/NerveStateCtrl.cpp diff --git a/include/al/nerve/NerveStateBase.h b/include/al/nerve/NerveStateBase.h new file mode 100644 index 00000000..e071e536 --- /dev/null +++ b/include/al/nerve/NerveStateBase.h @@ -0,0 +1,21 @@ +#pragma once + +#include "al/nerve/NerveExecutor.h" + +namespace al +{ + class NerveStateBase : public NerveExecutor + { + public: + NerveStateBase(const char *); + + virtual ~NerveStateBase(); + virtual void init(); + virtual void appear(); + virtual void kill(); + virtual bool update(); + virtual void control(); + + bool mIsDead; // _10 + }; +}; \ No newline at end of file diff --git a/include/al/nerve/NerveStateCtrl.h b/include/al/nerve/NerveStateCtrl.h index eb73463f..3d5ced42 100644 --- a/include/al/nerve/NerveStateCtrl.h +++ b/include/al/nerve/NerveStateCtrl.h @@ -1,11 +1,31 @@ #pragma once #include "al/nerve/Nerve.h" +#include "al/nerve/NerveStateBase.h" -class NerveStateCtrl +namespace al { -public: - NerveStateCtrl(int); + struct State + { + al::NerveStateBase* mStateBase; // _0 + const al::Nerve* mNerve; // _8 + const char* mName; // _10 + }; - void update(); + class NerveStateCtrl + { + public: + NerveStateCtrl(int); + + void addState(al::NerveStateBase *, const al::Nerve *, const char *); + void update(); + + bool isCurrentStateEnd() const; + + int _0; + int _4; + State** mStates; // _8 + int mCurrentState; // _10 + int _14; + }; }; \ No newline at end of file diff --git a/source/al/nerve/NerveStateBase.cpp b/source/al/nerve/NerveStateBase.cpp new file mode 100644 index 00000000..7fbc2ac6 --- /dev/null +++ b/source/al/nerve/NerveStateBase.cpp @@ -0,0 +1,48 @@ +#include "al/nerve/NerveStateBase.h" + +namespace al +{ + NerveStateBase::NerveStateBase(const char *pName) : NerveExecutor(pName) + { + mIsDead = true; + } + + NerveStateBase::~NerveStateBase() + { + delete this; + } + + void NerveStateBase::init() + { + + } + + void NerveStateBase::appear() + { + mIsDead = false; + } + + void NerveStateBase::kill() + { + mIsDead = true; + } + + bool NerveStateBase::update() + { + updateNerve(); + + if (mIsDead) + { + return true; + } + + control(); + + return mIsDead; + } + + void NerveStateBase::control() + { + + } +}; \ No newline at end of file diff --git a/source/al/nerve/NerveStateCtrl.cpp b/source/al/nerve/NerveStateCtrl.cpp new file mode 100644 index 00000000..4f406d95 --- /dev/null +++ b/source/al/nerve/NerveStateCtrl.cpp @@ -0,0 +1,6 @@ +#include "al/nerve/NerveStateCtrl.h" + +namespace al +{ + +}; \ No newline at end of file