]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/content_cao.cpp
fix gettext compile issues under win32
[dragonfireclient.git] / src / content_cao.cpp
index bbee0bc8350243ddb182cd41107495361ab79a90..e97e3a1beae912712c507fde32cda4bc38089fb9 100644 (file)
@@ -1210,6 +1210,12 @@ class GenericCAO : public ClientActiveObject
                        m_yaw += dtime * m_prop.automatic_rotate * 180 / M_PI;
                        updateNodePos();
                }
+
+               if (getParent() == NULL && m_prop.automatic_face_movement_dir &&
+                               (fabs(m_velocity.Z) > 0.001 || fabs(m_velocity.X) > 0.001)){
+                       m_yaw = atan2(m_velocity.Z,m_velocity.X) * 180 / M_PI + m_prop.automatic_face_movement_dir_offset;
+                       updateNodePos();
+               }
        }
 
        void updateTexturePos()
@@ -1734,8 +1740,29 @@ class GenericCAO : public ClientActiveObject
                {
                        /*s16 damage =*/ readS16(is);
                        s16 result_hp = readS16(is);
-                       
+
+                       // Use this instead of the send damage to not interfere with prediction
+                       s16 damage = m_hp - result_hp;
+
                        m_hp = result_hp;
+
+                       if (damage > 0) {
+                               if (m_hp <= 0) {
+                                       // TODO: Execute defined fast response
+                                       // As there is no definition, make a smoke puff
+                                       ClientSimpleObject *simple = createSmokePuff(
+                                                       m_smgr, m_env, m_position,
+                                                       m_prop.visual_size * BS);
+                                       m_env->addSimpleObject(simple);
+                               } else {
+                                       // TODO: Execute defined fast response
+                                       // Flashing shall suffice as there is no definition
+                                       m_reset_textures_timer = 0.05;
+                                       if(damage >= 2)
+                                               m_reset_textures_timer += 0.05 * damage;
+                                       updateTextures("^[brighten");
+                               }
+                       }
                }
                else if(cmd == GENERIC_CMD_UPDATE_ARMOR_GROUPS)
                {