[Frontierproject-cvs] frontierproject/src autoTarget.cpp,NONE,1.1 event.cpp,1.13,1.14 gui_mainscreen
Status: Pre-Alpha
Brought to you by:
bdragon28
|
From: Brandon B. <bdr...@us...> - 2006-05-17 20:45:36
|
Update of /cvsroot/frontierproject/frontierproject/src In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv29547/src Modified Files: event.cpp gui_mainscreen.cpp v_Starbase.cpp widget_painter.cpp widget_toolwell.cpp Added Files: autoTarget.cpp Log Message: Add autoTarget. The Set Packet Dest button works now. Index: gui_mainscreen.cpp =================================================================== RCS file: /cvsroot/frontierproject/frontierproject/src/gui_mainscreen.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** gui_mainscreen.cpp 17 May 2006 06:51:08 -0000 1.14 --- gui_mainscreen.cpp 17 May 2006 20:45:29 -0000 1.15 *************** *** 46,58 **** FXDEFMAP (mainWindow) mainWindowMap[] = { ! FXMAPFUNC (SEL_COMMAND, mainWindow::ID_TOOLBARBUTTONS, mainWindow::onToolbar ), ! FXMAPFUNC (SEL_COMMAND, mainWindow::ID_MNU_HELP_ABOUT, mainWindow::onMnuHelpAbout ), ! FXMAPFUNC (SEL_COMMAND, mainWindow::ID_MNU_DEBUG_SHOWCONSOLE, mainWindow::onMnuDebugShowConsole ), ! FXMAPFUNC (SEL_COMMAND, mainWindow::ID_MNU_DEBUG_GENTURN, mainWindow::onMnuDebugGenTurn ), ! FXMAPFUNC (SEL_COMMAND, mainWindow::ID_MNU_DEBUG_SHOWRACE, mainWindow::onMnuDebugShowRace ), ! FXMAPFUNC (SEL_COMMAND, mainWindow::ID_MNU_DEBUG_SHOWGAMESETUP, mainWindow::onMnuDebugShowGameSetup ), ! FXMAPFUNC (SEL_COMMAND, mainWindow::ID_MNU_DEBUG_SHOWSD, mainWindow::onMnuDebugShowShipdesigner ), ! FXMAPFUNC (SEL_COMMAND, mainWindow::ID_MNU_DEBUG_ADDSHIP, mainWindow::onMnuDebugAddShip ), ! FXMAPFUNC (SEL_COMMAND, mainWindow::ID_CANVAS, mainWindow::onGetPaintCommand ), }; --- 46,59 ---- FXDEFMAP (mainWindow) mainWindowMap[] = { ! FXMAPFUNC(SEL_COMMAND, mainWindow::ID_TOOLBARBUTTONS, mainWindow::onToolbar ), ! FXMAPFUNC(SEL_COMMAND, mainWindow::ID_M_HELP_ABOUT, mainWindow::onMnuHelpAbout ), ! FXMAPFUNC(SEL_COMMAND, mainWindow::ID_M_DBG_CONSOLE, mainWindow::onMnuDebugShowConsole ), ! FXMAPFUNC(SEL_COMMAND, mainWindow::ID_M_DBG_TURN, mainWindow::onMnuDebugGenTurn ), ! FXMAPFUNC(SEL_COMMAND, mainWindow::ID_M_DBG_RACE, mainWindow::onMnuDebugShowRace ), ! FXMAPFUNC(SEL_COMMAND, mainWindow::ID_M_DBG_GS, mainWindow::onMnuDebugShowGameSetup ), ! FXMAPFUNC(SEL_COMMAND, mainWindow::ID_M_DBG_SHOWSD, mainWindow::onMnuDebugShowShipdesigner), ! FXMAPFUNC(SEL_COMMAND, mainWindow::ID_M_DBG_ADDSHIP, mainWindow::onMnuDebugAddShip ), ! FXMAPFUNC(SEL_COMMAND, mainWindow::ID_CANVAS, mainWindow::onGetPaintCommand ), ! FXMAPFUNC(SEL_COMMAND, mainWindow::ID_M_COMM_SD, mainWindow::onShowShipdesigner ), }; *************** *** 79,82 **** --- 80,89 ---- // Implement the menus // //////////////////////////////////////// + + // FXMenuPane* mnuTurn; + // FXMenuCommand* mnuTurnGenerate; + // FXMenuPane* mnuComm; + // FXMenuCommand* mnuCommSD; + menubar_s=new FXToolBarShell(this); menubar=new FXMenuBar(topdock,menubar_s,LAYOUT_SIDE_TOP|LAYOUT_FILL_X|FRAME_RAISED); *************** *** 86,102 **** new FXMenuTitle(menubar, "&File", NULL, mnuFile); mnuFileExit = new FXMenuCommand(mnuFile, "E&xit", NULL, getApp(), FXApp::ID_QUIT,0); mnuHelp = new FXMenuPane(this); new FXMenuTitle (menubar , "&Help", NULL, mnuHelp); ! mnuHelpAbout = new FXMenuCommand(mnuHelp, "&About", NULL, this, ID_MNU_HELP_ABOUT,0); mnuDebug = new FXMenuPane(this); new FXMenuTitle (menubar , "&Debug", NULL, mnuDebug); ! mnuDebugShowConsole = new FXMenuCommand(mnuDebug, "Show &Console", NULL, this, ID_MNU_DEBUG_SHOWCONSOLE, 0); ! mnuDebugGenTurn = new FXMenuCommand(mnuDebug, "Generate Turn", NULL, this, ID_MNU_DEBUG_GENTURN, 0); ! mnuDebugShowRace = new FXMenuCommand(mnuDebug, "Save turn (TEMP)", NULL, this, ID_MNU_DEBUG_SHOWRACE, 0); ! mnuDebugShowGameSetup = new FXMenuCommand(mnuDebug, "Attempt to load colonists(TEMP)", NULL, this, ID_MNU_DEBUG_SHOWGAMESETUP, 0); ! mnuDebugShowShipdesigner = new FXMenuCommand(mnuDebug, "Show Ship Designer", NULL, this, ID_MNU_DEBUG_SHOWSD, 0); ! mnuDebugAddShip = new FXMenuCommand(mnuDebug, "Add test fleet", NULL, this, ID_MNU_DEBUG_ADDSHIP, 0); //////TOOLBAR Init/////// --- 93,117 ---- new FXMenuTitle(menubar, "&File", NULL, mnuFile); mnuFileExit = new FXMenuCommand(mnuFile, "E&xit", NULL, getApp(), FXApp::ID_QUIT,0); + + // mnuTurn = new FXMenuPane(this); + // new FXMenuTitle(menubar, "&Turn", NULL, mnuTurn); + // mnuTurnGenerate = new FXMenuCommand(mnuTurn, "&Generate", NULL, getApp(), FXApp::ID_QUIT, 0); + + // mnuComm = new FXMenuPane(this); + // new FXMenuTitle(menubar, "&Commands", NULL, mnuComm); + // mnuCommSD = new FXMenuCommand(mnuComm, "&Ship Design\tF4", NULL, this, ID_M_COMM_SD, 0); mnuHelp = new FXMenuPane(this); new FXMenuTitle (menubar , "&Help", NULL, mnuHelp); ! mnuHelpAbout = new FXMenuCommand(mnuHelp, "&About", NULL, this, ID_M_HELP_ABOUT,0); mnuDebug = new FXMenuPane(this); new FXMenuTitle (menubar , "&Debug", NULL, mnuDebug); ! mnuDebugShowConsole = new FXMenuCommand(mnuDebug, "Show &Console", NULL, this, ID_M_DBG_CONSOLE, 0); ! mnuDebugGenTurn = new FXMenuCommand(mnuDebug, "Generate Turn", NULL, this, ID_M_DBG_TURN, 0); ! mnuDebugShowRace = new FXMenuCommand(mnuDebug, "Save turn (TEMP)", NULL, this, ID_M_DBG_RACE, 0); ! mnuDebugShowGameSetup = new FXMenuCommand(mnuDebug, "Attempt to load colonists(TEMP)", NULL, this, ID_M_DBG_GS, 0); ! mnuDebugShowShipdesigner = new FXMenuCommand(mnuDebug, "Show Ship Designer", NULL, this, ID_M_DBG_SHOWSD, 0); ! mnuDebugAddShip = new FXMenuCommand(mnuDebug, "Add test fleet", NULL, this, ID_M_DBG_ADDSHIP, 0); //////TOOLBAR Init/////// *************** *** 185,188 **** --- 200,204 ---- toolbar_s->create(); menubar_s->create(); + // ps_s->create(); *************** *** 344,347 **** --- 360,370 ---- } + long mainWindow::onShowShipdesigner(FXObject*,FXSelector,void*) + { + shipdesigner->show(PLACEMENT_SCREEN); + getApp()->runModalWhileShown(shipdesigner); + return 1; + } + long mainWindow::onMnuDebugShowGameSetup(FXObject *, FXSelector, void *) { --- NEW FILE: autoTarget.cpp --- /***************************************************************************** * Copyright (C) 2006 Brandon Bergren * * * * This file is part of The Frontier Project. * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * * ****************************************************************************/ /** * @file * AutoTarget: Evil will always triumph, because good is dumb. */ #include "FrontierClient.h" FXDict *intTargets; //std::deque<FXint*> intValues; //FXApp *apptr; //FXString *dataPath; bool autoTarget::init() { intTargets = new FXDict(); return true; } FXDataTarget* autoTarget::tieInt(const char *key,FXint def) { if(intTargets->find(key)) return static_cast<FXDataTarget*>(intTargets->find(key)); FXDataTarget *theTarget; FXint *theValue = new FXint; *theValue = def; theTarget = new FXDataTarget(def); intTargets->insert(key,static_cast<void*>(theTarget)); return theTarget; } Index: widget_toolwell.cpp =================================================================== RCS file: /cvsroot/frontierproject/frontierproject/src/widget_toolwell.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** widget_toolwell.cpp 14 May 2006 03:28:10 -0000 1.4 --- widget_toolwell.cpp 17 May 2006 20:45:29 -0000 1.5 *************** *** 36,40 **** */ ! #include <fx.h> #include "vTemplate.h" --- 36,40 ---- */ ! #include "FrontierClient.h" #include "vTemplate.h" Index: event.cpp =================================================================== RCS file: /cvsroot/frontierproject/frontierproject/src/event.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** event.cpp 16 May 2006 21:00:21 -0000 1.13 --- event.cpp 17 May 2006 20:45:29 -0000 1.14 *************** *** 103,106 **** --- 103,109 ---- remp.format("%s/data",FXFile::getCurrentDirectory().text()); gdArt::init(apptr,remp.text()); + + CLOG("EVENT: Initializing AutoTarget.\n"); + autoTarget::init(); splashOff(); Index: widget_painter.cpp =================================================================== RCS file: /cvsroot/frontierproject/frontierproject/src/widget_painter.cpp,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** widget_painter.cpp 17 May 2006 06:41:09 -0000 1.18 --- widget_painter.cpp 17 May 2006 20:45:29 -0000 1.19 *************** *** 136,139 **** --- 136,143 ---- uMaxX = TheGalaxy->MaxX(); uMaxY = TheGalaxy->MaxY(); + + + autoTarget::tieInt("/painter/forceshift",0)->connect(simulateShift); + } *************** *** 157,160 **** --- 161,165 ---- cursory = 0; hasselection=false; + simulateShift=false; }; *************** *** 759,764 **** { using FreeStars::TheGame; ! FXEvent *ev = (FXEvent*)ptr; event = ev; --- 764,773 ---- { using FreeStars::TheGame; ! using FreeStars::Planet; ! using FreeStars::Fleet; ! using FreeStars::SpaceObject; ! using std::deque; + FXEvent *ev = (FXEvent*)ptr; event = ev; *************** *** 766,770 **** FXlong y1 = s2uy(ev->win_y); ! std::deque<FreeStars::SpaceObject *> * d; d = TheGame->GetClosestTop(x1, y1); //Debug --- 775,780 ---- FXlong y1 = s2uy(ev->win_y); ! deque<SpaceObject *> *d; ! d = TheGame->GetClosestTop(x1, y1); //Debug *************** *** 773,794 **** //End Debug ! //Waypoint addition ! if(ev->state & SHIFTMASK) { ! if(dynamic_cast<FreeStars::Fleet*>(mLastSelected->at(mpLastSelected))) { ! CLOG("Would have sent %s to location %i,%i, but not implemented yet!\n",dynamic_cast<FreeStars::Fleet*>(mLastSelected->at(mpLastSelected))->GetName(TheGame->GetCurrentPlayer()).c_str(),d->at(0)->GetPosX(),d->at(0)->GetPosY()); } ! else if(dynamic_cast<FreeStars::Planet*>(mLastSelected->at(mpLastSelected))) { ! FreeStars::Planet* p = dynamic_cast<FreeStars::Planet*>(mLastSelected->at(mpLastSelected)); ! //set packet dest CLOG("Painter: Setting packet dest! %s's new destination is %s!\n", p->GetName().c_str(), d->at(0)->InOrbit()->GetName().c_str()); ! dynamic_cast<FreeStars::Planet*>(mLastSelected->at(mpLastSelected))->SetPacketDest(d->at(0)->InOrbit()); update(); return 1; } ! } ! cursorx = d->at(0)->GetPosX(); //@@@ Behavior is NOT like this. --- 783,819 ---- //End Debug ! ! ///// Are we doing a shifted click? ///// ! if(simulateShift || (ev->state & SHIFTMASK)) { ! simulateShift = false; ! ! ///// We were last selecting a fleet ///// ! if(dynamic_cast<Fleet*>(mLastSelected->at(mpLastSelected))) { ! CLOG("Would have sent %s to location %i,%i, but not implemented yet!\n",dynamic_cast<Fleet*>(mLastSelected->at(mpLastSelected))->GetName(TheGame->GetCurrentPlayer()).c_str(),d->at(0)->GetPosX(),d->at(0)->GetPosY()); } ! ! ///// We were last selecting a planet ///// ! else if(dynamic_cast<Planet*>(mLastSelected->at(mpLastSelected))) { ! Planet* p = dynamic_cast<Planet*>(mLastSelected->at(mpLastSelected)); ! CLOG("Painter: Setting packet dest! %s's new destination is %s!\n", p->GetName().c_str(), d->at(0)->InOrbit()->GetName().c_str()); ! ! //Set the packet dest. ! dynamic_cast<Planet*>(mLastSelected->at(mpLastSelected))->SetPacketDest(d->at(0)->InOrbit()); ! ! //Signal update ! target->handle(this,FXSEL(SEL_COMMAND,message),static_cast<void*>(mLastSelected->at(mpLastSelected))); ! ! //Mark ourself dirty. update(); + + //Return early because the selection hasn't changed. return 1; } ! ! } ///// End shifted click handling ///// cursorx = d->at(0)->GetPosX(); //@@@ Behavior is NOT like this. *************** *** 861,865 **** target->handle(this,FXSEL(SEL_COMMAND,message),static_cast<void*>(d->at(mpLastSelected))); ! return 0; }; --- 886,890 ---- target->handle(this,FXSEL(SEL_COMMAND,message),static_cast<void*>(d->at(mpLastSelected))); ! return 0; //@bug haven't we successfully handled the message? }; Index: v_Starbase.cpp =================================================================== RCS file: /cvsroot/frontierproject/frontierproject/src/v_Starbase.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** v_Starbase.cpp 16 May 2006 20:47:08 -0000 1.8 --- v_Starbase.cpp 17 May 2006 20:45:29 -0000 1.9 *************** *** 45,49 **** // FXMAPFUNC(SEL_DND_DROP, w_shipBuilder::ID_DROP, w_shipBuilder::onDNDDrop), FXMAPFUNC(SEL_COMMAND, v_Starbase::ID_FOO, v_Starbase::onFoo), ! FXMAPFUNC(SEL_COMMAND, v_Starbase::ID_SETDEST, v_Starbase::onSetDest), }; --- 45,49 ---- // FXMAPFUNC(SEL_DND_DROP, w_shipBuilder::ID_DROP, w_shipBuilder::onDNDDrop), FXMAPFUNC(SEL_COMMAND, v_Starbase::ID_FOO, v_Starbase::onFoo), ! // FXMAPFUNC(SEL_COMMAND, v_Starbase::ID_SETDEST, v_Starbase::onSetDest), }; *************** *** 88,92 **** lblDest = new FXLabel(matArr,"none" ,0,LAYOUT_FILL_COLUMN|LAYOUT_RIGHT, 0,0,0,0,0,2,0,0); ! btnSetDest = new FXButton(matArr,"Set dest",0,this,ID_SETDEST,BUTTON_NORMAL|LAYOUT_LEFT,0,0,0,0,2,0,0,0); } --- 88,93 ---- lblDest = new FXLabel(matArr,"none" ,0,LAYOUT_FILL_COLUMN|LAYOUT_RIGHT, 0,0,0,0,0,2,0,0); ! //btnSetDest = ! new FXToggleButton(matArr,"Set dest","Set dest",0,0,autoTarget::tieInt("/painter/forceshift",0),FXDataTarget::ID_VALUE,TOGGLEBUTTON_NORMAL|TOGGLEBUTTON_KEEPSTATE|LAYOUT_LEFT,0,0,0,0,2,0,0,0); } *************** *** 103,111 **** } ! long v_Starbase::onSetDest(FXObject*,FXSelector,void*) { //@@@ Implement return 1; ! } void v_Starbase::setPlanet(const FreeStars::Planet* planet) --- 104,114 ---- } ! /* ! long v_Starbase::onSetDest(FXObject* o,FXSelector s,void*ptr) { + target->handle(o,FXSEL(SEL_PAINTERCOMMAND,w_Painter::ID_FORCESHIFT),ptr); //@@@ Implement return 1; ! }*/ void v_Starbase::setPlanet(const FreeStars::Planet* planet) |