summaryrefslogtreecommitdiffstats
path: root/src/modelinfo/WeaponModelInfo.cpp
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2020-05-10 10:04:20 +0200
committeraap <aap@papnet.eu>2020-05-10 10:04:20 +0200
commite9fbd2ccfd9bd70cfdae0161f4c32aa29f6b7274 (patch)
treebab6161fcd3d49bd6805619cb304d6958d1147a1 /src/modelinfo/WeaponModelInfo.cpp
parentMerge pull request #528 from Nick007J/miami (diff)
downloadre3-e9fbd2ccfd9bd70cfdae0161f4c32aa29f6b7274.tar
re3-e9fbd2ccfd9bd70cfdae0161f4c32aa29f6b7274.tar.gz
re3-e9fbd2ccfd9bd70cfdae0161f4c32aa29f6b7274.tar.bz2
re3-e9fbd2ccfd9bd70cfdae0161f4c32aa29f6b7274.tar.lz
re3-e9fbd2ccfd9bd70cfdae0161f4c32aa29f6b7274.tar.xz
re3-e9fbd2ccfd9bd70cfdae0161f4c32aa29f6b7274.tar.zst
re3-e9fbd2ccfd9bd70cfdae0161f4c32aa29f6b7274.zip
Diffstat (limited to '')
-rw-r--r--src/modelinfo/WeaponModelInfo.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/modelinfo/WeaponModelInfo.cpp b/src/modelinfo/WeaponModelInfo.cpp
new file mode 100644
index 00000000..fe5ead01
--- /dev/null
+++ b/src/modelinfo/WeaponModelInfo.cpp
@@ -0,0 +1,53 @@
+#include "common.h"
+
+#include "ModelInfo.h"
+#include "AnimManager.h"
+#include "VisibilityPlugins.h"
+
+void
+CWeaponModelInfo::SetAnimFile(const char *file)
+{
+ if(strcasecmp(file, "null") == 0)
+ return;
+
+ m_animFileName = new char[strlen(file)+1];
+ strcpy(m_animFileName, file);
+}
+
+void
+CWeaponModelInfo::ConvertAnimFileIndex(void)
+{
+ if(m_animFileIndex != -1){
+ // we have a string pointer in that union
+ int32 index = CAnimManager::GetAnimationBlockIndex(m_animFileName);
+ delete[] m_animFileName;
+ m_animFileIndex = index;
+ }
+}
+
+void
+CWeaponModelInfo::Init(void)
+{
+ CSimpleModelInfo::Init();
+ SetWeaponInfo(0);
+}
+
+void
+CWeaponModelInfo::SetWeaponInfo(int32 weaponId)
+{
+ m_atomics[2] = (RpAtomic*)weaponId;
+}
+
+int32
+CWeaponModelInfo::GetWeaponInfo(void)
+{
+ return (int32)(uintptr)m_atomics[2];
+}
+
+void
+CWeaponModelInfo::SetAtomic(int n, RpAtomic *atomic)
+{
+ CSimpleModelInfo::SetAtomic(n, atomic);
+ CVisibilityPlugins::SetAtomicRenderCallback(atomic, CVisibilityPlugins::RenderWeaponCB);
+}
+