From a79ffd77b06b0ed028dad856a05ad884ee420fe8 Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Wed, 28 Jun 2023 14:29:33 -0700 Subject: [PATCH] NSMonster: change entity spawn key 'body_on_draw' to support a group prefix (e.g. 1:2 for group 1, model 2) --- src/shared/NSMonster.h | 2 +- src/shared/NSMonster.qc | 13 ++++++++++--- src/shared/NSRenderableEntity.qc | 3 --- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/shared/NSMonster.h b/src/shared/NSMonster.h index 39352b3f..e6434cf3 100644 --- a/src/shared/NSMonster.h +++ b/src/shared/NSMonster.h @@ -491,7 +491,7 @@ private: string m_sndRangedAttack2; bool m_bWeaponStartsDrawn; - float m_flBodyOnDraw; + string m_strBodyOnDraw; float m_flWalkSpeed; float m_flRunSpeed; diff --git a/src/shared/NSMonster.qc b/src/shared/NSMonster.qc index 566a571a..f9c91359 100644 --- a/src/shared/NSMonster.qc +++ b/src/shared/NSMonster.qc @@ -832,8 +832,15 @@ NSMonster::AttackDraw(void) AnimPlay(actDraw); m_flAttackThink = time + frameduration(modelindex, actDraw); - if (m_flBodyOnDraw) - SetBody(m_flBodyOnDraw); + if (m_strBodyOnDraw) { + int t = tokenizebyseparator(m_strBodyOnDraw, ":"); + + if (t == 1) { + SetBodyInGroup(0, stoi(argv(0))); + } else if (t == 2) { + SetBodyInGroup(stoi(argv(0)), stoi(argv(1))); + } + } } void @@ -1521,7 +1528,7 @@ NSMonster::SpawnKey(string strKey, string strValue) m_bWeaponStartsDrawn = ReadBool(strValue); break; case "body_on_draw": - m_flBodyOnDraw = ReadFloat(strValue); + m_strBodyOnDraw = ReadString(strValue); break; case "speed_walk": m_flWalkSpeed = ReadFloat(strValue); diff --git a/src/shared/NSRenderableEntity.qc b/src/shared/NSRenderableEntity.qc index f381ccb6..9380ee78 100644 --- a/src/shared/NSRenderableEntity.qc +++ b/src/shared/NSRenderableEntity.qc @@ -587,8 +587,6 @@ NSRenderableEntity::SetBody(int newBody) { m_iBody = newBody; - breakpoint(); - #ifdef CLIENT _UpdateGeomset(); #endif @@ -600,7 +598,6 @@ NSRenderableEntity::SetBodyInGroup(int groupID, int bodyValue) /* pack our half bytes */ m_iBody |= (bodyValue << (4 * groupID)); //print(sprintf("NEW BODY: %i %i %i\n", m_iBody, groupID, bodyValue)); - breakpoint(); } void