X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fclouds.h;h=a4d810faad3e1b6803860b2d8485c7ebeae4a5b5;hb=81c06dea9b6b863e0c8f6a9c052a5cea3a130eab;hp=869f7f7fc8b2980fe447b9bad99b965567d46a6c;hpb=76be103a91d6987527af19e87d93007be8ba8a67;p=dragonfireclient.git diff --git a/src/clouds.h b/src/clouds.h index 869f7f7fc..a4d810faa 100644 --- a/src/clouds.h +++ b/src/clouds.h @@ -17,8 +17,7 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef CLOUDS_HEADER -#define CLOUDS_HEADER +#pragma once #include "irrlichttypes_extrabloated.h" #include @@ -36,12 +35,9 @@ extern irr::scene::ISceneManager *g_menucloudsmgr; class Clouds : public scene::ISceneNode { public: - Clouds( - scene::ISceneNode* parent, - scene::ISceneManager* mgr, + Clouds(scene::ISceneManager* mgr, s32 id, - u32 seed, - s16 cloudheight=0 + u32 seed ); ~Clouds(); @@ -75,9 +71,9 @@ class Clouds : public scene::ISceneNode void step(float dtime); - void update(v2f camera_p, video::SColorf color); + void update(const v3f &camera_p, const video::SColorf &color); - void updateCameraOffset(v3s16 camera_offset) + void updateCameraOffset(const v3s16 &camera_offset) { m_camera_offset = camera_offset; updateBox(); @@ -118,6 +114,10 @@ class Clouds : public scene::ISceneNode updateBox(); } + bool isCameraInsideCloud() const { return m_camera_inside_cloud; } + + const video::SColor getColor() const { return m_color.toSColor(); } + private: void updateBox() { @@ -127,20 +127,18 @@ class Clouds : public scene::ISceneNode BS * 1000000.0f, height_bs + thickness_bs - BS * m_camera_offset.Y, BS * 1000000.0f); } + bool gridFilled(int x, int y) const; + video::SMaterial m_material; aabb3f m_box; - s16 m_passed_cloud_y; u16 m_cloud_radius_i; bool m_enable_3d; u32 m_seed; - v2f m_camera_pos; + v3f m_camera_pos; v2f m_origin; v3s16 m_camera_offset; video::SColorf m_color = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f); CloudParams m_params; + bool m_camera_inside_cloud = false; }; - - - -#endif