From 3c487c5cd69c53d6fea948643c0a76df03516605 Mon Sep 17 00:00:00 2001 From: Aki Date: Fri, 1 Apr 2022 21:23:39 +0200 Subject: Moved Stars45 to StarsEx --- Stars45/NavLight.cpp | 187 --------------------------------------------------- 1 file changed, 187 deletions(-) delete mode 100644 Stars45/NavLight.cpp (limited to 'Stars45/NavLight.cpp') diff --git a/Stars45/NavLight.cpp b/Stars45/NavLight.cpp deleted file mode 100644 index 1be4fd5..0000000 --- a/Stars45/NavLight.cpp +++ /dev/null @@ -1,187 +0,0 @@ -/* 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 - ======== - Navigation Light System class -*/ - -#include "NavLight.h" - -#include "Clock.h" -#include "Bitmap.h" -#include "DataLoader.h" -#include "ContentBundle.h" - -// +----------------------------------------------------------------------+ - -static Bitmap* images[4]; - -// +----------------------------------------------------------------------+ - -NavLight::NavLight(double p, double s) -: System(COMPUTER, 32, "Navigation Lights", 1, 0), -period(p), nlights(0), scale(s), enable(true) -{ - name = ContentBundle::GetInstance()->GetText("sys.nav-light"); - abrv = ContentBundle::GetInstance()->GetText("sys.nav-light.abrv"); - - ZeroMemory(beacon, sizeof(beacon)); - ZeroMemory(beacon_type, sizeof(beacon_type)); - ZeroMemory(pattern, sizeof(pattern)); -} - -// +----------------------------------------------------------------------+ - -NavLight::NavLight(const NavLight& c) -: System(c), period(c.period), scale(c.scale), -nlights(0), enable(true) -{ - Mount(c); - SetAbbreviation(c.Abbreviation()); - ZeroMemory(beacon, sizeof(beacon)); - ZeroMemory(beacon_type, sizeof(beacon_type)); - - nlights = c.nlights; - - for (int i = 0; i < nlights; i++) { - loc[i] = c.loc[i]; - pattern[i] = c.pattern[i]; - beacon_type[i] = c.beacon_type[i]; - - DriveSprite* rep = new DriveSprite(images[beacon_type[i]]); - rep->Scale(c.scale); - - beacon[i] = rep; - } - - offset = rand(); -} - -// +--------------------------------------------------------------------+ - -NavLight::~NavLight() -{ - for (int i = 0; i < nlights; i++) - GRAPHIC_DESTROY(beacon[i]); -} - -// +--------------------------------------------------------------------+ - -void -NavLight::Initialize() -{ - static int initialized = 0; - if (initialized) return; - - DataLoader* loader = DataLoader::GetLoader(); - loader->LoadTexture("beacon1.pcx", images[0], Bitmap::BMP_TRANSLUCENT); - loader->LoadTexture("beacon2.pcx", images[1], Bitmap::BMP_TRANSLUCENT); - loader->LoadTexture("beacon3.pcx", images[2], Bitmap::BMP_TRANSLUCENT); - loader->LoadTexture("beacon4.pcx", images[3], Bitmap::BMP_TRANSLUCENT); - - initialized = 1; -} - -void -NavLight::Close() -{ -} - -// +--------------------------------------------------------------------+ - -void -NavLight::ExecFrame(double seconds) -{ - if (enable && power_on) { - double t = (Clock::GetInstance()->GameTime()+offset) / 1000.0; - DWORD n = (int) (fmod(t, period) * 32 / period); - DWORD code = 1 << n; - - for (int i = 0; i < nlights; i++) { - if (beacon[i]) { - if (pattern[i] & code) - beacon[i]->SetShade(1); - else - beacon[i]->SetShade(0); - } - } - } - else { - for (int i = 0; i < nlights; i++) { - if (beacon[i]) { - beacon[i]->SetShade(0); - } - } - } -} - -void -NavLight::Enable() -{ - enable = true; -} - -void -NavLight::Disable() -{ - enable = false; -} - -void -NavLight::AddBeacon(Point l, DWORD ptn, int t) -{ - if (nlights < MAX_LIGHTS) { - loc[nlights] = l; - pattern[nlights] = ptn; - beacon_type[nlights] = t; - - DriveSprite* rep = new DriveSprite(images[t]); - rep->Scale(scale); - - beacon[nlights] = rep; - nlights++; - } -} - -void -NavLight::SetPeriod(double p) -{ - period = p; -} - -void -NavLight::SetPattern(int index, DWORD ptn) -{ - if (index >= 0 && index < nlights) - pattern[index] = ptn; -} - -void -NavLight::SetOffset(DWORD o) -{ - offset = o; -} - -// +--------------------------------------------------------------------+ - -void -NavLight::Orient(const Physical* rep) -{ - System::Orient(rep); - - const Matrix& orientation = rep->Cam().Orientation(); - Point ship_loc = rep->Location(); - - for (int i = 0; i < nlights; i++) { - Point projector = (loc[i] * orientation) + ship_loc; - if (beacon[i]) beacon[i]->MoveTo(projector); - } -} - - -- cgit v1.1