From: Borrillis <bor...@us...> - 2005-02-01 21:33:33
|
Update of /cvsroot/planeshift/planeshift/src/client/gui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20051/src/client/gui Modified Files: pawsgmaction.cpp pawsgmaction.h pawsgmgui.cpp pawsgmgui.h Log Message: - Added Editing to Action Tab in GmGUI - Added Add to Action Tab in GmGUI - Added Add Link to Action Tab in GmGUI - Added delete to Action Tab in GmGUI - Added Refresh List to Action Tab in GmGUI - Added Reload Cache to Action Tab in GmGUI Index: pawsgmaction.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawsgmaction.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** pawsgmaction.cpp 29 Jan 2005 18:48:01 -0000 1.2 --- pawsgmaction.cpp 1 Feb 2005 21:32:09 -0000 1.3 *************** *** 129,133 **** void pawsGMActionWindow::LoadAction( const char * xml ) { ! csString id("0"), name(""), masterid("0"), sectorName(""), --- 129,143 ---- void pawsGMActionWindow::LoadAction( const char * xml ) { ! ! csRef<iDocument> doc = ParseString( xml ); ! csRef<iDocumentNode> root = doc->GetRoot(); ! csRef<iDocumentNode> topNode = root->GetNode( "location" ); ! ! LoadAction( topNode ); ! } ! ! void pawsGMActionWindow::LoadAction( csRef<iDocumentNode> topNode ) ! { ! csString id(""), name(""), masterid("0"), sectorName(""), *************** *** 138,145 **** responsetype(""), response(""); - csRef<iDocument> doc = ParseString( xml ); - csRef<iDocumentNode> root = doc->GetRoot(); - csRef<iDocumentNode> topNode = root->GetNode( "location" ); csRef<iDocumentNode> node; // sector --- 148,153 ---- responsetype(""), response(""); csRef<iDocumentNode> node; + csRef<iDocumentNode> posNode; // sector *************** *** 157,160 **** --- 165,174 ---- } + node = topNode->GetNode( "name" ); + if ( node ) + { + name = node->GetContentsValue(); + } + node = topNode->GetNode( "sector" ); if ( node ) *************** *** 175,182 **** } ! topNode = topNode->GetNode( "position" ); ! if ( topNode ) { ! node = topNode->GetNode( "x" ); if ( node ) { --- 189,196 ---- } ! posNode = topNode->GetNode( "position" ); ! if ( posNode ) { ! node = posNode->GetNode( "x" ); if ( node ) { *************** *** 184,188 **** } ! node = topNode->GetNode( "y" ); if ( node ) { --- 198,202 ---- } ! node = posNode->GetNode( "y" ); if ( node ) { *************** *** 190,194 **** } ! node = topNode->GetNode( "z" ); if ( node ) { --- 204,208 ---- } ! node = posNode->GetNode( "z" ); if ( node ) { *************** *** 196,200 **** } } - topNode = root->GetNode( "location" ); node = topNode->GetNode( "radius" ); --- 210,213 ---- *************** *** 239,246 **** txtPosZ->SetText( Z ); txtRadius->SetText( radius ); ! txtMasterID->SetText( masterid ); ! txtResponseType->SetText( responsetype ); ! txtResponse->SetText( response ); ! isDirty = false; --- 252,261 ---- txtPosZ->SetText( Z ); txtRadius->SetText( radius ); ! if ( !IsVisible() ) ! { ! txtMasterID->SetText( masterid ); ! txtResponseType->SetText( responsetype ); ! txtResponse->SetText( response ); ! } isDirty = false; Index: pawsgmaction.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawsgmaction.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pawsgmaction.h 26 Jan 2005 20:32:28 -0000 1.1 --- pawsgmaction.h 1 Feb 2005 21:32:09 -0000 1.2 *************** *** 43,46 **** --- 43,47 ---- void LoadAction( const char *xml ); + void LoadAction( csRef<iDocumentNode> topNode ); bool OnButtonPressed ( int button, int keyModifier, pawsWidget* widget ); Index: pawsgmgui.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawsgmgui.cpp,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** pawsgmgui.cpp 1 Feb 2005 02:50:17 -0000 1.34 --- pawsgmgui.cpp 1 Feb 2005 21:32:09 -0000 1.35 *************** *** 31,34 **** --- 31,35 ---- #include "pscelclient.h" + #include "paws/pawswidget.h" #include "paws/pawsborder.h" *************** *** 45,49 **** --- 46,52 ---- #include "paws/pawsstringpromptwindow.h" #include "pscamera.h" + #include "pawsgmaction.h" + #include "../actionhandler.h" ////////////////////////////////////////////////////////////////////// *************** *** 170,173 **** --- 173,178 ---- cmdsource = psengine->GetCmdHandler(); systemText = (pawsMessageTextBox*)windowManager->FindWidget("SystemText"); + actionXML = ""; + } *************** *** 239,244 **** psMapActionMessage actionMsg( me ); ! if ( actionMsg.command == psMapActionMessage::LIST ) ! FillActionList( actionMsg ); } break; --- 244,252 ---- psMapActionMessage actionMsg( me ); ! if ( actionMsg.command == psMapActionMessage::LIST ) ! { ! actionXML = actionMsg.actionXML; ! FillActionList( actionMsg ); ! } } break; *************** *** 254,257 **** --- 262,267 ---- BringToTop(this); + pawsGMActionWindow * AddEdit = (pawsGMActionWindow *) windowManager->FindWidget( "AddEditActionWindow" ); + switch (widget->GetID()) { *************** *** 361,364 **** --- 371,459 ---- break; } + // Action Location Tab Buttons + case 1260: // Refresh List + QueryActionLocations(); + break; + + case 1261: // Add Location + if ( AddEdit ) + { + AddEdit->LoadAction( "<location></location>" ); + } + break; + + case 1262: // Add Linked Location + if ( AddEdit ) + { + pawsListBoxRow* row = actionList->GetSelected(); + if (!row) + return true; + + pawsTextBox* box = (pawsTextBox*)row->GetColumn(0); + + csString msg; + msg.Append("<location><masterid>"); + msg.Append( box->GetText() ); + msg.Append("</masterid></location>"); + AddEdit->LoadAction( msg ); + } + break; + + case 1263: // Edit Location + if ( AddEdit ) + { + AddEdit->Close(); + + pawsListBoxRow* row = actionList->GetSelected(); + if (!row) + return true; + + pawsTextBox* box = (pawsTextBox*)row->GetColumn(0); + + csString id = box->GetText(); + + // Loop through all Locations + csRef<iDocument> doc = ParseString( actionXML ); + csRef<iDocumentNode> root = doc->GetRoot(); + csRef<iDocumentNode> topNode = root->GetNode( "locations" ); + + csRef<iDocumentNodeIterator> locIter = topNode->GetNodes( "location" ); + + size_t i = 0; + while ( locIter->HasNext() ) + { + csRef<iDocumentNode> locationNode = locIter->Next(); + if ( locationNode->GetNode( "id" ) ) + { + if ( locationNode->GetNode( "id" )->GetContentsValueAsInt() == atoi( id ) ) + { + AddEdit->LoadAction( locationNode ); + return true; + } + } + } + + } + break; + + case 1264: // Delete Location + if ( AddEdit ) + { + pawsListBoxRow* row = actionList->GetSelected(); + if (!row) + return true; + + pawsTextBox* box = (pawsTextBox*)row->GetColumn(0); + + csString id = box->GetText(); + + psengine->GetActionHandler()->DeleteAction( id ); + }; + break; + + case 1266: // Reload Cache + psengine->GetActionHandler()->ReloadCache(); + break; + case 1298: // refresh player list QueryServer(); *************** *** 502,505 **** --- 597,616 ---- msgqueue->SendMessage( queryMsg.msg ); + QueryActionLocations(); + } + } + + void pawsGmGUIWindow::QueryActionLocations() + { + if (psengine->IsGameLoaded()) + { + if (psengine->GetCelClient()->GetMainPlayer()->GetType() < 21) + { + return; + } + } + + if ( IsVisible() ) + { csString query( "" ); iSector* sector = psengine->GetPSCamera()->GetICamera()->GetSector(); *************** *** 511,515 **** psMapActionMessage actionMsg( 0, psMapActionMessage::LIST_QUERY, query); msgqueue->SendMessage(actionMsg.msg); ! } } --- 622,626 ---- psMapActionMessage actionMsg( 0, psMapActionMessage::LIST_QUERY, query); msgqueue->SendMessage(actionMsg.msg); ! } } *************** *** 630,641 **** { csRef<iDocumentNode> locationNode = locIter->Next(); actionList->NewRow( i ); ! pawsTextBox* nameBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 0 ); ! pawsTextBox* meshNameBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 1 ); ! pawsTextBox* polyBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 2 ); ! pawsTextBox* posBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 3 ); ! pawsTextBox* typeBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 4 ); if ( !nameBox ) return; --- 741,756 ---- { csRef<iDocumentNode> locationNode = locIter->Next(); + csRef<iDocumentNode> node; actionList->NewRow( i ); ! pawsTextBox* idBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 0 ); ! pawsTextBox* nameBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 1 ); ! pawsTextBox* meshNameBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 2 ); ! pawsTextBox* polyBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 3 ); ! pawsTextBox* posBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 4 ); ! pawsTextBox* typeBox = (pawsTextBox*)( (pawsListBoxRow*)actionList->GetRow( i ) )->GetColumn( 5 ); + if ( !idBox ) + return; if ( !nameBox ) return; *************** *** 649,652 **** --- 764,772 ---- return; + if ( locationNode->GetNode( "id" ) ) + { + idBox->SetText( locationNode->GetNode( "id" )->GetContentsValue() ); + } + if ( locationNode->GetNode( "name" ) ) { *************** *** 663,666 **** --- 783,808 ---- } + node = locationNode->GetNode( "position" ); + if ( node ) + { + float posx, posy, posz; + const char * posFormat = "<%.2f, %.2f, %.2f>"; + posx = posy = posz = 0.0f; + csString posStr( "" ); + + if ( node->GetNode( "x" ) ) posx = node->GetNode( "x" )->GetContentsValueAsFloat(); + if ( node->GetNode( "y" ) ) posx = node->GetNode( "y" )->GetContentsValueAsFloat(); + if ( node->GetNode( "z" ) ) posx = node->GetNode( "z" )->GetContentsValueAsFloat(); + + posStr.Format( posFormat, posx, posy, posz ); + + posBox->SetText( posStr.GetData() ); + } + + if ( locationNode->GetNode( "responsetype" ) ) + { + typeBox->SetText( locationNode->GetNode( "responsetype" )->GetContentsValue() ); + } + i++; } *************** *** 734,747 **** void pawsGmGUIWindow::OnListAction( pawsListBox* widget, int status ) { ! if (status==HIGHLIGHTED) { ! pawsTextBox* lbl = (pawsTextBox*)FindWidget("SectorLbl"); ! if (!lbl) ! return; ! csString text; ! text.Format("Sector: %s",GetSelectedSector()); - lbl->SetText(text); - } } --- 876,898 ---- void pawsGmGUIWindow::OnListAction( pawsListBox* widget, int status ) { ! if ( !widget ) return; ! ! switch ( widget->GetID() ) { ! case 1201: // Player List ! if (status==HIGHLIGHTED) ! { ! pawsTextBox* lbl = (pawsTextBox*)FindWidget("SectorLbl"); ! if (!lbl) ! return; ! csString text; ! text.Format("Sector: %s",GetSelectedSector()); ! ! lbl->SetText(text); ! } ! case 1265: // Action List ! break; ! } } Index: pawsgmgui.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawsgmgui.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** pawsgmgui.h 1 Feb 2005 02:50:18 -0000 1.9 --- pawsgmgui.h 1 Feb 2005 21:32:11 -0000 1.10 *************** *** 65,68 **** --- 65,70 ---- void SetSecurity(); + void QueryActionLocations(); + void FillPlayerList(psGMGuiMessage& msg); void FillActionList(psMapActionMessage& msg); *************** *** 73,76 **** --- 75,79 ---- int currentTab; csString cmdToExectute; + csString actionXML; }; CREATE_PAWS_FACTORY( pawsGmGUIWindow ); |