summaryrefslogtreecommitdiff
path: root/src/toBeSorted/d_camera_base.cpp
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2026-01-04 23:10:29 +0100
committerrobojumper <robojumper@gmail.com>2026-03-01 20:56:39 +0100
commitdf9e3b50b04190bf19baa1a64b49d31b82952569 (patch)
treed6bd2deec30c0069c6999754f0ea86087a179994 /src/toBeSorted/d_camera_base.cpp
parentb8c395d2c9f9861fa129a92602d2ebe942ebdf19 (diff)
Some camera stuff
Diffstat (limited to 'src/toBeSorted/d_camera_base.cpp')
-rw-r--r--src/toBeSorted/d_camera_base.cpp48
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;
+}