diff options
author | milo24x7@gmail.com <milo24x7@gmail.com@076cb2c4-205e-83fd-5cf3-1be9aa105544> | 2013-07-07 22:08:49 +0000 |
---|---|---|
committer | milo24x7@gmail.com <milo24x7@gmail.com@076cb2c4-205e-83fd-5cf3-1be9aa105544> | 2013-07-07 22:08:49 +0000 |
commit | d17521c8b9085a91d08fecfd0b51bbbf7b1dccac (patch) | |
tree | 4673104b47dc68a079cac9f94deefd48dfcb66fa /Stars45/CmdTheaterDlg.cpp | |
parent | 1de4b2bdbb019be6f1b7262c3eba5568d7682edd (diff) | |
download | starshatter-d17521c8b9085a91d08fecfd0b51bbbf7b1dccac.zip starshatter-d17521c8b9085a91d08fecfd0b51bbbf7b1dccac.tar.gz starshatter-d17521c8b9085a91d08fecfd0b51bbbf7b1dccac.tar.bz2 |
Updated open source license declaration and fixed some formatting issues.
Diffstat (limited to 'Stars45/CmdTheaterDlg.cpp')
-rw-r--r-- | Stars45/CmdTheaterDlg.cpp | 456 |
1 files changed, 240 insertions, 216 deletions
diff --git a/Stars45/CmdTheaterDlg.cpp b/Stars45/CmdTheaterDlg.cpp index c0f8d90..4100fb7 100644 --- a/Stars45/CmdTheaterDlg.cpp +++ b/Stars45/CmdTheaterDlg.cpp @@ -1,216 +1,240 @@ -/* Project Starshatter 4.5
- Destroyer Studios LLC
- Copyright © 1997-2004. All Rights Reserved.
-
- SUBSYSTEM: Stars.exe
- FILE: CmdTheaterDlg.cpp
- AUTHOR: John DiCamillo
-
-
- OVERVIEW
- ========
- Operational Command Dialog (Theater Map Tab)
-*/
-
-#include "MemDebug.h"
-#include "CmdTheaterDlg.h"
-#include "CmdDlg.h"
-#include "CmpnScreen.h"
-#include "Galaxy.h"
-#include "Starshatter.h"
-#include "StarSystem.h"
-#include "Campaign.h"
-#include "Combatant.h"
-#include "CombatGroup.h"
-#include "CombatUnit.h"
-#include "ShipDesign.h"
-
-#include "Game.h"
-#include "DataLoader.h"
-#include "Button.h"
-#include "ComboBox.h"
-#include "ListBox.h"
-#include "Slider.h"
-#include "Video.h"
-#include "Keyboard.h"
-#include "Mouse.h"
-#include "ParseUtil.h"
-#include "FormatUtil.h"
-
-// +--------------------------------------------------------------------+
-// DECLARE MAPPING FUNCTIONS:
-
-DEF_MAP_CLIENT(CmdTheaterDlg, OnMode);
-DEF_MAP_CLIENT(CmdTheaterDlg, OnSave);
-DEF_MAP_CLIENT(CmdTheaterDlg, OnExit);
-DEF_MAP_CLIENT(CmdTheaterDlg, OnView);
-
-// Supported Selection Modes:
-
-const int SELECT_NONE = -1;
-const int SELECT_SYSTEM = 0;
-const int SELECT_PLANET = 1;
-const int SELECT_REGION = 2;
-const int SELECT_STATION = 3;
-const int SELECT_STARSHIP = 4;
-const int SELECT_FIGHTER = 5;
-
-const int VIEW_GALAXY = 0;
-const int VIEW_SYSTEM = 1;
-const int VIEW_REGION = 2;
-
-// +--------------------------------------------------------------------+
-
-CmdTheaterDlg::CmdTheaterDlg(Screen* s, FormDef& def, CmpnScreen* mgr)
-: FormWindow(s, 0, 0, s->Width(), s->Height()), CmdDlg(mgr), manager(mgr),
-map_theater(0), map_view(0), stars(0), campaign(0)
-{
- stars = Starshatter::GetInstance();
- campaign = Campaign::GetCampaign();
-
- Init(def);
-}
-
-CmdTheaterDlg::~CmdTheaterDlg()
-{
-}
-
-// +--------------------------------------------------------------------+
-
-void
-CmdTheaterDlg::RegisterControls()
-{
- map_theater = FindControl(400);
-
- RegisterCmdControls(this);
-
- if (btn_save)
- REGISTER_CLIENT(EID_CLICK, btn_save, CmdTheaterDlg, OnSave);
-
- if (btn_exit)
- REGISTER_CLIENT(EID_CLICK, btn_exit, CmdTheaterDlg, OnExit);
-
- for (int i = 0; i < 5; i++) {
- if (btn_mode[i])
- REGISTER_CLIENT(EID_CLICK, btn_mode[i], CmdTheaterDlg, OnMode);
- }
-
- if (map_theater)
- map_view = new(__FILE__,__LINE__) MapView(map_theater);
-
- for (int i = 0; i < 3; i++) {
- view_btn[i] = (Button*) FindControl(401 + i);
- REGISTER_CLIENT(EID_CLICK, view_btn[i], CmdTheaterDlg, OnView);
- }
-
- zoom_in_btn = (Button*) FindControl(410);
- zoom_out_btn = (Button*) FindControl(411);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-CmdTheaterDlg::Show()
-{
- mode = MODE_THEATER;
-
- FormWindow::Show();
- ShowCmdDlg();
-
- campaign = Campaign::GetCampaign();
-
- if (campaign && map_theater) {
- map_view->SetCampaign(campaign);
- }
-}
-
-// +--------------------------------------------------------------------+
-
-void
-CmdTheaterDlg::ExecFrame()
-{
- CmdDlg::ExecFrame();
-
- if (!map_view)
- return;
-
- if (Keyboard::KeyDown(VK_ADD) ||
- (zoom_in_btn && zoom_in_btn->GetButtonState() > 0)) {
- map_view->ZoomIn();
- }
- else if (Keyboard::KeyDown(VK_SUBTRACT) ||
- (zoom_out_btn && zoom_out_btn->GetButtonState() > 0)) {
- map_view->ZoomOut();
- }
-
- else if (Mouse::Wheel() > 0) {
- map_view->ZoomIn();
- map_view->ZoomIn();
- map_view->ZoomIn();
- }
-
- else if (Mouse::Wheel() < 0) {
- map_view->ZoomOut();
- map_view->ZoomOut();
- map_view->ZoomOut();
- }
-}
-
-// +--------------------------------------------------------------------+
-
-void
-CmdTheaterDlg::OnSave(AWEvent* event)
-{
- CmdDlg::OnSave(event);
-}
-
-void
-CmdTheaterDlg::OnExit(AWEvent* event)
-{
- CmdDlg::OnExit(event);
-}
-
-void
-CmdTheaterDlg::OnMode(AWEvent* event)
-{
- CmdDlg::OnMode(event);
-}
-
-// +--------------------------------------------------------------------+
-
-void
-CmdTheaterDlg::OnView(AWEvent* event)
-{
- int use_filter_mode = -1;
-
- view_btn[VIEW_GALAXY]->SetButtonState(0);
- view_btn[VIEW_SYSTEM]->SetButtonState(0);
- view_btn[VIEW_REGION]->SetButtonState(0);
-
- if (view_btn[0] == event->window) {
- if (map_view) map_view->SetViewMode(VIEW_GALAXY);
- view_btn[VIEW_GALAXY]->SetButtonState(1);
- use_filter_mode = SELECT_SYSTEM;
- }
-
- else if (view_btn[VIEW_SYSTEM] == event->window) {
- if (map_view) map_view->SetViewMode(VIEW_SYSTEM);
- view_btn[VIEW_SYSTEM]->SetButtonState(1);
- use_filter_mode = SELECT_REGION;
- }
-
- else if (view_btn[VIEW_REGION] == event->window) {
- if (map_view) map_view->SetViewMode(VIEW_REGION);
- view_btn[VIEW_REGION]->SetButtonState(1);
- use_filter_mode = SELECT_STARSHIP;
- }
-
- if (use_filter_mode >= 0) {
- if (map_view) map_view->SetSelectionMode(use_filter_mode);
- }
-}
-
-// +--------------------------------------------------------------------+
-
-
-
+/* Starshatter OpenSource Distribution + Copyright (c) 1997-2004, Destroyer Studios LLC. + All Rights Reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name "Destroyer Studios" nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + SUBSYSTEM: Stars.exe + FILE: CmdTheaterDlg.cpp + AUTHOR: John DiCamillo + + + OVERVIEW + ======== + Operational Command Dialog (Theater Map Tab) +*/ + +#include "MemDebug.h" +#include "CmdTheaterDlg.h" +#include "CmdDlg.h" +#include "CmpnScreen.h" +#include "Galaxy.h" +#include "Starshatter.h" +#include "StarSystem.h" +#include "Campaign.h" +#include "Combatant.h" +#include "CombatGroup.h" +#include "CombatUnit.h" +#include "ShipDesign.h" + +#include "Game.h" +#include "DataLoader.h" +#include "Button.h" +#include "ComboBox.h" +#include "ListBox.h" +#include "Slider.h" +#include "Video.h" +#include "Keyboard.h" +#include "Mouse.h" +#include "ParseUtil.h" +#include "FormatUtil.h" + +// +--------------------------------------------------------------------+ +// DECLARE MAPPING FUNCTIONS: + +DEF_MAP_CLIENT(CmdTheaterDlg, OnMode); +DEF_MAP_CLIENT(CmdTheaterDlg, OnSave); +DEF_MAP_CLIENT(CmdTheaterDlg, OnExit); +DEF_MAP_CLIENT(CmdTheaterDlg, OnView); + +// Supported Selection Modes: + +const int SELECT_NONE = -1; +const int SELECT_SYSTEM = 0; +const int SELECT_PLANET = 1; +const int SELECT_REGION = 2; +const int SELECT_STATION = 3; +const int SELECT_STARSHIP = 4; +const int SELECT_FIGHTER = 5; + +const int VIEW_GALAXY = 0; +const int VIEW_SYSTEM = 1; +const int VIEW_REGION = 2; + +// +--------------------------------------------------------------------+ + +CmdTheaterDlg::CmdTheaterDlg(Screen* s, FormDef& def, CmpnScreen* mgr) + : FormWindow(s, 0, 0, s->Width(), s->Height()), CmdDlg(mgr), manager(mgr), + map_theater(0), map_view(0), stars(0), campaign(0) +{ + stars = Starshatter::GetInstance(); + campaign = Campaign::GetCampaign(); + + Init(def); +} + +CmdTheaterDlg::~CmdTheaterDlg() +{ +} + +// +--------------------------------------------------------------------+ + +void +CmdTheaterDlg::RegisterControls() +{ + map_theater = FindControl(400); + + RegisterCmdControls(this); + + if (btn_save) + REGISTER_CLIENT(EID_CLICK, btn_save, CmdTheaterDlg, OnSave); + + if (btn_exit) + REGISTER_CLIENT(EID_CLICK, btn_exit, CmdTheaterDlg, OnExit); + + for (int i = 0; i < 5; i++) { + if (btn_mode[i]) + REGISTER_CLIENT(EID_CLICK, btn_mode[i], CmdTheaterDlg, OnMode); + } + + if (map_theater) + map_view = new(__FILE__,__LINE__) MapView(map_theater); + + for (int i = 0; i < 3; i++) { + view_btn[i] = (Button*) FindControl(401 + i); + REGISTER_CLIENT(EID_CLICK, view_btn[i], CmdTheaterDlg, OnView); + } + + zoom_in_btn = (Button*) FindControl(410); + zoom_out_btn = (Button*) FindControl(411); +} + +// +--------------------------------------------------------------------+ + +void +CmdTheaterDlg::Show() +{ + mode = MODE_THEATER; + + FormWindow::Show(); + ShowCmdDlg(); + + campaign = Campaign::GetCampaign(); + + if (campaign && map_theater) { + map_view->SetCampaign(campaign); + } +} + +// +--------------------------------------------------------------------+ + +void +CmdTheaterDlg::ExecFrame() +{ + CmdDlg::ExecFrame(); + + if (!map_view) + return; + + if (Keyboard::KeyDown(VK_ADD) || + (zoom_in_btn && zoom_in_btn->GetButtonState() > 0)) { + map_view->ZoomIn(); + } + else if (Keyboard::KeyDown(VK_SUBTRACT) || + (zoom_out_btn && zoom_out_btn->GetButtonState() > 0)) { + map_view->ZoomOut(); + } + + else if (Mouse::Wheel() > 0) { + map_view->ZoomIn(); + map_view->ZoomIn(); + map_view->ZoomIn(); + } + + else if (Mouse::Wheel() < 0) { + map_view->ZoomOut(); + map_view->ZoomOut(); + map_view->ZoomOut(); + } +} + +// +--------------------------------------------------------------------+ + +void +CmdTheaterDlg::OnSave(AWEvent* event) +{ + CmdDlg::OnSave(event); +} + +void +CmdTheaterDlg::OnExit(AWEvent* event) +{ + CmdDlg::OnExit(event); +} + +void +CmdTheaterDlg::OnMode(AWEvent* event) +{ + CmdDlg::OnMode(event); +} + +// +--------------------------------------------------------------------+ + +void +CmdTheaterDlg::OnView(AWEvent* event) +{ + int use_filter_mode = -1; + + view_btn[VIEW_GALAXY]->SetButtonState(0); + view_btn[VIEW_SYSTEM]->SetButtonState(0); + view_btn[VIEW_REGION]->SetButtonState(0); + + if (view_btn[0] == event->window) { + if (map_view) map_view->SetViewMode(VIEW_GALAXY); + view_btn[VIEW_GALAXY]->SetButtonState(1); + use_filter_mode = SELECT_SYSTEM; + } + + else if (view_btn[VIEW_SYSTEM] == event->window) { + if (map_view) map_view->SetViewMode(VIEW_SYSTEM); + view_btn[VIEW_SYSTEM]->SetButtonState(1); + use_filter_mode = SELECT_REGION; + } + + else if (view_btn[VIEW_REGION] == event->window) { + if (map_view) map_view->SetViewMode(VIEW_REGION); + view_btn[VIEW_REGION]->SetButtonState(1); + use_filter_mode = SELECT_STARSHIP; + } + + if (use_filter_mode >= 0) { + if (map_view) map_view->SetSelectionMode(use_filter_mode); + } +} + +// +--------------------------------------------------------------------+ + + + |