summaryrefslogtreecommitdiff
path: root/src/engine/StaticMeshActor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/StaticMeshActor.cpp')
-rw-r--r--src/engine/StaticMeshActor.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/engine/StaticMeshActor.cpp b/src/engine/StaticMeshActor.cpp
new file mode 100644
index 000000000..2e5fa1119
--- /dev/null
+++ b/src/engine/StaticMeshActor.cpp
@@ -0,0 +1,29 @@
+#include "StaticMeshActor.h"
+#include <libultra/gbi.h>
+#include "Matrix.h"
+
+extern "C" {
+#include "main.h"
+#include "math_util.h"
+#include "math_util_2.h"
+}
+
+StaticMeshActor::StaticMeshActor(std::string name, FVector pos, IRotator rot, FVector scale, std::string model, int32_t* collision) : Name(name), Pos(pos), Rot(rot), Scale(scale), Model(""), Collision(collision) {
+
+}
+
+void StaticMeshActor::Draw() {
+ Mat4 mtx;
+ gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH);
+ gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);
+ if (!Model.empty()) {
+ ApplyMatrixTransformations(mtx, Pos, Rot, Scale);
+ if (render_set_position(mtx, 0) != 0) {
+ gSPDisplayList(gDisplayListHead++, (Gfx*)Model.c_str());
+ }
+ }
+}
+
+void StaticMeshActor::Destroy() {
+ bPendingDestroy = true;
+}