diff options
| author | robojumper <robojumper@gmail.com> | 2026-01-04 23:10:29 +0100 |
|---|---|---|
| committer | robojumper <robojumper@gmail.com> | 2026-03-01 20:56:39 +0100 |
| commit | df9e3b50b04190bf19baa1a64b49d31b82952569 (patch) | |
| tree | d6bd2deec30c0069c6999754f0ea86087a179994 /src/toBeSorted/d_camera_base.cpp | |
| parent | b8c395d2c9f9861fa129a92602d2ebe942ebdf19 (diff) | |
Some camera stuff
Diffstat (limited to 'src/toBeSorted/d_camera_base.cpp')
| -rw-r--r-- | src/toBeSorted/d_camera_base.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/toBeSorted/d_camera_base.cpp b/src/toBeSorted/d_camera_base.cpp new file mode 100644 index 00000000..f079e77d --- /dev/null +++ b/src/toBeSorted/d_camera_base.cpp @@ -0,0 +1,48 @@ +#include "toBeSorted/d_camera_base.h" + +#include "common.h" + +// TODO: Weak function order (CamView dtor needs to appear after a bunch of weak functions) +// TODO: I'm not sure why all those weak functions even got emitted here, there's nothing +// that forces the compiler to put anything here so using this as a hack. I really believe the +// text split is correct, and this file doesn't appear to have any other sections. +void CreatedCameraBase_cHack() { + dCameraBase_c *c = new dCameraBase_c(); +} + +bool dCameraBase_c::doCreate(s32 index) { + if (!mCreated) { + if (!create()) { + return false; + } + mCreated = true; + mIndex = index; + } + return true; +} + +bool dCameraBase_c::doRemove() { + field_0x01 = false; + return remove(); +} + +bool dCameraBase_c::doExecute() { + if (field_0x02 && !field_0x01) { + vt_0x08(); + } else if (!field_0x02 && field_0x01) { + vt_0x0C(); + } + field_0x01 = field_0x02; + if (!field_0x02) { + return false; + } else { + return execute(); + } +} + +bool dCameraBase_c::doDraw() { + if (field_0x01) { + return draw(); + } + return false; +} |
