diff options
author | Aki <please@ignore.pl> | 2022-04-01 21:23:39 +0200 |
---|---|---|
committer | Aki <please@ignore.pl> | 2022-04-01 21:23:39 +0200 |
commit | 3c487c5cd69c53d6fea948643c0a76df03516605 (patch) | |
tree | 72730c7b8b26a5ef8fc9a987ec4c16129efd5aac /StarsEx/Light.cpp | |
parent | 8f353abd0bfe18baddd8a8250ab7c4f2d1c83a6e (diff) | |
download | starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.zip starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.gz starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.bz2 |
Moved Stars45 to StarsEx
Diffstat (limited to 'StarsEx/Light.cpp')
-rw-r--r-- | StarsEx/Light.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/StarsEx/Light.cpp b/StarsEx/Light.cpp new file mode 100644 index 0000000..c0c3a26 --- /dev/null +++ b/StarsEx/Light.cpp @@ -0,0 +1,70 @@ +/* Starshatter: The Open Source Project + Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors + Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors + Copyright (c) 1997-2006, Destroyer Studios LLC. + + AUTHOR: John DiCamillo + + + OVERVIEW + ======== + Dynamic Light Source +*/ + +#include "Light.h" +#include "Scene.h" + +// +--------------------------------------------------------------------+ + +int Light::id_key = 1; + +// +--------------------------------------------------------------------+ + +Light::Light(float l, float dl, int time) +: id(id_key++), type(LIGHT_POINT), life(time), +light(l), dldt(dl), color(255,255,255), +active(true), shadow(false), scene(0) +{ } + +// +--------------------------------------------------------------------+ + +Light::~Light() +{ } + +// +--------------------------------------------------------------------+ + +void +Light::Update() +{ + if (dldt < 1.0f) + light *= dldt; + + if (life > 0) life--; +} + +// +--------------------------------------------------------------------+ + +void +Light::Destroy() +{ + if (scene) + scene->DelLight(this); + + delete this; +} + +// +--------------------------------------------------------------------+ + +void +Light::MoveTo(const Point& dst) +{ + //if (type != LIGHT_DIRECTIONAL) + loc = dst; +} + +void +Light::TranslateBy(const Point& ref) +{ + if (type != LIGHT_DIRECTIONAL) + loc = loc - ref; +} |