From: <ac...@us...> - 2008-07-17 02:32:04
|
Revision: 1924 http://planeshift.svn.sourceforge.net/planeshift/?rev=1924&view=rev Author: acraig Date: 2008-07-17 02:32:11 +0000 (Thu, 17 Jul 2008) Log Message: ----------- Fix for: FS#1865 - Improve the delete char message. Added another dialog window to give details. Fixed problem in the yes/no box where it was clearing the modal widget all the time. Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/gui/pawscharpick.cpp trunk/src/client/psengine.cpp trunk/src/common/paws/pawsyesnobox.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-17 00:28:36 UTC (rev 1923) +++ trunk/docs/history.txt 2008-07-17 02:32:11 UTC (rev 1924) @@ -1,3 +1,10 @@ +*** 2008-07-16 by Andrew Craig +- Fix for FS#1865 - Improve the delete char message. + Now does an initial prompt window that gives details about what will happen. + The second prompt will request password to confirm character deletion. +- Fixed a problem in the yes/no box where it was always clearing the + modal widget after HandleButtonDown was called. + *** 2008-07-16 by Steven Patrick - Updated MinGW section of compiling.html. Modified: trunk/src/client/gui/pawscharpick.cpp =================================================================== --- trunk/src/client/gui/pawscharpick.cpp 2008-07-17 00:28:36 UTC (rev 1923) +++ trunk/src/client/gui/pawscharpick.cpp 2008-07-17 02:32:11 UTC (rev 1924) @@ -51,6 +51,8 @@ #define BACK_BUTTON 200 #define QUIT_BUTTON 250 +#define YES_DELETE_CHARACTER 300 +#define NO_DELETE_CHARACTER 302 pawsCharacterPickerWindow::pawsCharacterPickerWindow() { @@ -212,6 +214,27 @@ switch ( widget->GetID() ) { + case YES_DELETE_CHARACTER: + { + PawsManager::GetSingleton().SetModalWidget(NULL); + widget->GetParent()->Hide(); + + pawsStringPromptWindow::Create("Please enter your account password to confirm:", csString(""),false, 220, 20, this, "DeletionConfirm", 0, true); + pawsEditTextBox* passbox = dynamic_cast<pawsEditTextBox*> + (PawsManager::GetSingleton().FindWidget("stringPromptEntry")); + + if (passbox) + { + passbox->SetPassword(true); + } + return true; + } + + case NO_DELETE_CHARACTER: + { + return true; + } + case CHARACTER_DELETE_BUTTON: { csString name; @@ -229,16 +252,10 @@ // Catch invalid selection. if(charName == "New Character") return false; - // Selection is valid. - pawsStringPromptWindow::Create("Please enter your account password to confirm:", csString(""), - false, 220, 20, this, "DeletionConfirm", 0, true); - pawsEditTextBox* passbox = dynamic_cast<pawsEditTextBox*> - (PawsManager::GetSingleton().FindWidget("stringPromptEntry")); - if (passbox) - { - passbox->SetPassword(true); - } - + + csString msg("Warning! this will PERMANENTLY DELETE your character. Are you sure you want to continue?"); + pawsYesNoBox::Create(this, msg, YES_DELETE_CHARACTER, NO_DELETE_CHARACTER); + return true; } Modified: trunk/src/client/psengine.cpp =================================================================== --- trunk/src/client/psengine.cpp 2008-07-17 00:28:36 UTC (rev 1923) +++ trunk/src/client/psengine.cpp 2008-07-17 02:32:11 UTC (rev 1924) @@ -479,6 +479,8 @@ if ( ! paws->LoadWidget("data/gui/quitinfo.xml") ) return false; + LoadPawsWidget( "Yes / No dialog", "data/gui/yesno.xml" ); + //Load confirmation information for duels if (!LoadDuelConfirm()) return false; @@ -1279,8 +1281,7 @@ LoadPawsWidget( "Container description window", "data/gui/containerdesc.xml" ); LoadPawsWidget( "Book Reading window", "data/gui/readbook.xml" ); LoadPawsWidget( "Interact menu", "data/gui/interact.xml" ); - LoadPawsWidget( "Yes / No dialog", "data/gui/yesno.xml" ); - LoadPawsWidget( "Group status window", "data/gui/group.xml" ); + LoadPawsWidget( "Group status window", "data/gui/group.xml" ); LoadPawsWidget( "Exchange window", "data/gui/exchange.xml" ); LoadPawsWidget( "Glyph window", "data/gui/glyph.xml" ); LoadPawsWidget( "Merchant window", "data/gui/merchant.xml" ); Modified: trunk/src/common/paws/pawsyesnobox.cpp =================================================================== --- trunk/src/common/paws/pawsyesnobox.cpp 2008-07-17 00:28:36 UTC (rev 1923) +++ trunk/src/common/paws/pawsyesnobox.cpp 2008-07-17 02:32:11 UTC (rev 1924) @@ -96,9 +96,9 @@ // The parent is responisble for handling the button presses. if ( notify ) { + PawsManager::GetSingleton().SetModalWidget( 0 ); bool result = notify->OnButtonPressed( mouseButton, keyModifier, widget ); SetNotify(0); - PawsManager::GetSingleton().SetModalWidget( 0 ); Hide(); return result; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <va...@us...> - 2008-07-21 07:35:52
|
Revision: 1934 http://planeshift.svn.sourceforge.net/planeshift/?rev=1934&view=rev Author: varslot Date: 2008-07-21 07:35:12 +0000 (Mon, 21 Jul 2008) Log Message: ----------- Plural of tria is also tria, i.e.: give me 50 tria. Modified Paths: -------------- trunk/data/gui/inventory.xml trunk/data/gui/money.xml trunk/src/client/gui/pawsexchangewindow.cpp Modified: trunk/data/gui/inventory.xml =================================================================== --- trunk/data/gui/inventory.xml 2008-07-20 00:03:28 UTC (rev 1933) +++ trunk/data/gui/inventory.xml 2008-07-21 07:35:12 UTC (rev 1934) @@ -221,7 +221,7 @@ <widget name="TotalTriasLabel" factory="pawsTextBox"> <frame x="5" y="172" width="50" height="30" /> <font name="/planeshift/data/ttf/cupandtalon.ttf" r="255" g="255" b="128" size="10" /> - <text string="Trias" /> + <text string="Tria" /> </widget> <widget name="TotalWeightLabel" factory="pawsTextBox"> Modified: trunk/data/gui/money.xml =================================================================== --- trunk/data/gui/money.xml 2008-07-20 00:03:28 UTC (rev 1933) +++ trunk/data/gui/money.xml 2008-07-21 07:35:12 UTC (rev 1934) @@ -1,6 +1,6 @@ <widget_description> <widget factory="pawsMoney"> - <widget name="Circles" factory="pawsSlot" tooltip="250 Trias" > + <widget name="Circles" factory="pawsSlot" tooltip="250 Tria" > <frame x="0" y="0" width="48" height="48" /> <font name="/planeshift/data/ttf/cupandtalon.ttf" r="255" g="255" b="64" size="10" /> <attachpoints> @@ -10,7 +10,7 @@ <attach point="PROPORTIONAL_BOTTOM" /> </attachpoints> </widget> - <widget name="Octas" factory="pawsSlot" tooltip="50 Trias" > + <widget name="Octas" factory="pawsSlot" tooltip="50 Tria" > <frame x="48" y="0" width="48" height="48" /> <font name="/planeshift/data/ttf/cupandtalon.ttf" r="255" g="255" b="64" size="10" /> <attachpoints> @@ -20,7 +20,7 @@ <attach point="PROPORTIONAL_BOTTOM" /> </attachpoints> </widget> - <widget name="Hexas" factory="pawsSlot" tooltip="10 Trias" > + <widget name="Hexas" factory="pawsSlot" tooltip="10 Tria" > <frame x="0" y="48" width="48" height="48" /> <font name="/planeshift/data/ttf/cupandtalon.ttf" r="255" g="255" b="64" size="10" /> <attachpoints> Modified: trunk/src/client/gui/pawsexchangewindow.cpp =================================================================== --- trunk/src/client/gui/pawsexchangewindow.cpp 2008-07-20 00:03:28 UTC (rev 1933) +++ trunk/src/client/gui/pawsexchangewindow.cpp 2008-07-21 07:35:12 UTC (rev 1934) @@ -362,14 +362,14 @@ { offeringMoneyWidget->Set(money.circles, money.octas, money.hexas, money.trias); csString triasOffered; - triasOffered.Format("Trias Offered %d", money.circles*CIRCLES_VALUE_TRIAS + money.octas*OCTAS_VALUE_TRIAS + money.hexas*HEXAS_VALUE_TRIAS + money.trias); + triasOffered.Format("Tria Offered %d", money.circles*CIRCLES_VALUE_TRIAS + money.octas*OCTAS_VALUE_TRIAS + money.hexas*HEXAS_VALUE_TRIAS + money.trias); totalTriasOffered->SetText(triasOffered); } else if ( money.container == CONTAINER_RECEIVING_MONEY ) { receivingMoneyWidget->Set(money.circles, money.octas, money.hexas, money.trias); csString triasReceived; - triasReceived.Format("Trias Received %d", money.circles*CIRCLES_VALUE_TRIAS + money.octas*OCTAS_VALUE_TRIAS + money.hexas*HEXAS_VALUE_TRIAS + money.trias); + triasReceived.Format("Tria Received %d", money.circles*CIRCLES_VALUE_TRIAS + money.octas*OCTAS_VALUE_TRIAS + money.hexas*HEXAS_VALUE_TRIAS + money.trias); totalTriasReceived->SetText(triasReceived); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <are...@us...> - 2008-07-24 03:47:09
|
Revision: 1941 http://planeshift.svn.sourceforge.net/planeshift/?rev=1941&view=rev Author: aresilek Date: 2008-07-24 03:47:17 +0000 (Thu, 24 Jul 2008) Log Message: ----------- - Fixed FS#1991 - deputizing doesn't update GM console, patch by Zwenze. - Changed max deputize to 1 below current level, patch by Kerol. Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/gui/pawsgmgui.cpp trunk/src/client/pscelclient.cpp trunk/src/server/adminmanager.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-21 22:38:41 UTC (rev 1940) +++ trunk/docs/history.txt 2008-07-24 03:47:17 UTC (rev 1941) @@ -1,3 +1,7 @@ +*** 2008-07-24 by Steven Patrick +- Fixed FS#1991 - deputizing doesn't update GM console, patch by Zwenze. +- Changed max deputize to 1 below current level, patch by Kerol. + *** 2008-07-17 by Mike Gist - Bumped CS revision to 30463. Removed CEL from the compiling guide. Modified: trunk/src/client/gui/pawsgmgui.cpp =================================================================== --- trunk/src/client/gui/pawsgmgui.cpp 2008-07-21 22:38:41 UTC (rev 1940) +++ trunk/src/client/gui/pawsgmgui.cpp 2008-07-24 03:47:17 UTC (rev 1941) @@ -146,6 +146,7 @@ //We don't want old information //SelectTab(1); pawsWidget::Show(); + SetSecurity(); QueryServer(); } Modified: trunk/src/client/pscelclient.cpp =================================================================== --- trunk/src/client/pscelclient.cpp 2008-07-21 22:38:41 UTC (rev 1940) +++ trunk/src/client/pscelclient.cpp 2008-07-24 03:47:17 UTC (rev 1941) @@ -312,6 +312,7 @@ // Update equipment list local_player->equipment = mesg.equipment; + local_player->type = mesg.masqueradeType; if (mesg.factname != local_player->GetFactName()) { Modified: trunk/src/server/adminmanager.cpp =================================================================== --- trunk/src/server/adminmanager.cpp 2008-07-21 22:38:41 UTC (rev 1940) +++ trunk/src/server/adminmanager.cpp 2008-07-24 03:47:17 UTC (rev 1941) @@ -6833,8 +6833,8 @@ return; } - // Can only set others to a max of 3 levels below own level (ex: GM4 can set someone to GM1) - int maxleveltoset = client->GetSecurityLevel() - 3; + // Can only set others to a max of 1 level below own level (ex: GM4 can set someone to GM3) + int maxleveltoset = client->GetSecurityLevel() - 1; int value; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-28 15:14:45
|
Revision: 1947 http://planeshift.svn.sourceforge.net/planeshift/?rev=1947&view=rev Author: heinchen Date: 2008-07-28 15:14:51 +0000 (Mon, 28 Jul 2008) Log Message: ----------- - fix FS#1826: stamina drain after long times with no dr update Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/database/mysql/math_scripts.sql trunk/src/server/gem.cpp trunk/src/server/gem.h Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-28 13:24:13 UTC (rev 1946) +++ trunk/docs/history.txt 2008-07-28 15:14:51 UTC (rev 1947) @@ -1,3 +1,6 @@ +*** 2008-07-28 by Andreas Heinchen +- Fixed FS#1826 + *** 2008-07-28 by Mike Gist - Fixed FS#1925, patch by peeg. - Patch for FS#2001 from weltall. Modified: trunk/src/server/database/mysql/math_scripts.sql =================================================================== --- trunk/src/server/database/mysql/math_scripts.sql 2008-07-28 13:24:13 UTC (rev 1946) +++ trunk/src/server/database/mysql/math_scripts.sql 2008-07-28 15:14:51 UTC (rev 1947) @@ -186,7 +186,7 @@ INSERT INTO math_scripts VALUES( "StaminaMove", " - Drain = (Speed/10) + ((Weight/MaxWeight)/10); + Drain = (Speed/3) * (Weight/MaxWeight); "); INSERT INTO math_scripts VALUES( "StaminaCombat", Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2008-07-28 13:24:13 UTC (rev 1946) +++ trunk/src/server/gem.cpp 2008-07-28 15:14:51 UTC (rev 1947) @@ -2765,6 +2765,9 @@ void gemActor::ApplyStaminaCalculations(const csVector3& v, float times) { + csVector3 thisV = lastV; + lastV=v; + // Script static MathScript* script = psserver->GetMathScriptEngine()->FindScript("StaminaMove"); if (!script) @@ -2816,17 +2819,17 @@ double Speed; ///< magnitude of the velocity vector double Angle; ///< angle between velocity vector and X-Z plane - double XZvel = csQsqrt(v.x*v.x + v.z*v.z); - if (v.y > EPSILON) + double XZvel = csQsqrt(thisV.x*thisV.x + thisV.z*thisV.z); + if (thisV.y > EPSILON) { if (XZvel > EPSILON) { - Speed = csQsqrt(v.y*v.y + XZvel*XZvel); - Angle = atan(v.y / XZvel); + Speed = csQsqrt(thisV.y*thisV.y + XZvel*XZvel); + Angle = atan(thisV.y / XZvel); } else // straight up { - Speed = v.y; + Speed = thisV.y; Angle = HALF_PI; } } Modified: trunk/src/server/gem.h =================================================================== --- trunk/src/server/gem.h 2008-07-28 13:24:13 UTC (rev 1946) +++ trunk/src/server/gem.h 2008-07-28 15:14:51 UTC (rev 1947) @@ -564,6 +564,7 @@ uint8_t DRcounter; /// increments in loop to prevent out of order packet overwrites of better data csTicks lastDR; + csVector3 lastV; /** Production Start Pos is used to record the place where people started digging. */ csVector3 productionStartPos; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-28 16:46:02
|
Revision: 1948 http://planeshift.svn.sourceforge.net/planeshift/?rev=1948&view=rev Author: heinchen Date: 2008-07-28 16:46:11 +0000 (Mon, 28 Jul 2008) Log Message: ----------- -cleaned up fix for FS#707 Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/adminmanager.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-28 15:14:51 UTC (rev 1947) +++ trunk/docs/history.txt 2008-07-28 16:46:11 UTC (rev 1948) @@ -1,4 +1,7 @@ *** 2008-07-28 by Andreas Heinchen +- Cleaned up fix for FS#707 + +*** 2008-07-28 by Andreas Heinchen - Fixed FS#1826 *** 2008-07-28 by Mike Gist Modified: trunk/src/server/adminmanager.cpp =================================================================== --- trunk/src/server/adminmanager.cpp 2008-07-28 15:14:51 UTC (rev 1947) +++ trunk/src/server/adminmanager.cpp 2008-07-28 16:46:11 UTC (rev 1948) @@ -5906,139 +5906,166 @@ target->GetName(), faction->name.GetData()); } -void AdminManager::TransferItem(MsgEntry* me, psAdminCmdMessage& msg, AdminCmdData& data, Client* source, Client* target) +void AdminManager::TransferItem(MsgEntry* me, psAdminCmdMessage& msg, + AdminCmdData& data, Client* source, Client* target) { if (!target || !target->GetCharacterData()) { psserver->SendSystemError(me->clientnum, "Invalid character to give to"); return; } - + if (!source || !source->GetCharacterData()) { - psserver->SendSystemError(me->clientnum, "Invalid character to take from"); + psserver->SendSystemError(me->clientnum, + "Invalid character to take from"); return; } - + if (source == target) { - psserver->SendSystemError(me->clientnum, "Source and target must be different"); + psserver->SendSystemError(me->clientnum, + "Source and target must be different"); return; } - + if (data.value == 0 || data.item.IsEmpty()) { - psserver->SendSystemError(me->clientnum, "Syntax: \"/[giveitem|takeitem] [target] [quantity|'all'|''] [item|tria]\""); + psserver->SendSystemError(me->clientnum, + "Syntax: \"/[giveitem|takeitem] [target] [quantity|'all'|''] [item|tria]\""); return; } - psItemStats* itemstats = CacheManager::GetSingleton().GetBasicItemStatsByName(data.item); - if (!itemstats) + psCharacter* targetchar = target->GetCharacterData(); + psCharacter* sourcechar = source->GetCharacterData(); + + if (data.item == "tria") { - psserver->SendSystemError(me->clientnum, "Invalid item name"); + psMoney srcMoney = sourcechar->Money(); + psMoney targetMoney = targetchar->Money(); + int value = data.value; + if (value == -1) + { + value = srcMoney.GetTotal(); + } + else if (value > srcMoney.GetTotal()) + { + value = srcMoney.GetTotal(); + psserver->SendSystemError(me->clientnum, "Only %d tria taken.", + srcMoney.GetTotal()); + } + psMoney transferMoney(0, 0, 0, value); + transferMoney = transferMoney.Normalized(); + sourcechar->SetMoney(srcMoney - transferMoney); + psserver->GetCharManager()->UpdateItemViews(source->GetClientNum()); + targetchar->SetMoney(targetMoney + transferMoney); + psserver->GetCharManager()->UpdateItemViews(target->GetClientNum()); + + // Inform the GM doing the transfer + psserver->SendSystemOK(me->clientnum, + "%d tria transferred from %s to %s", value, + source->GetActor()->GetName(), target->GetActor()->GetName()); + + // If we're giving to someone else, notify them + if (target->GetClientNum() != me->clientnum) + { + psserver->SendSystemOK(target->GetClientNum(), + "%d tria was by GM %s.", value, + source->GetActor()->GetName()); + } + + // If we're taking from someone else, notify them + if (source->GetClientNum() != me->clientnum) + { + psserver->SendSystemResult(source->GetClientNum(), + "%d tria was taken by %s.", value, + target->GetActor()->GetName()); + } return; } + else + { + psItemStats* itemstats = + CacheManager::GetSingleton().GetBasicItemStatsByName(data.item); - psCharacter* targetchar = target->GetCharacterData(); - psCharacter* sourcechar = source->GetCharacterData(); + if (!itemstats) + { + psserver->SendSystemError(me->clientnum, + "Cannot find any %s in %s's inventory.", + data.item.GetData(), source->GetActor()->GetName()); + return; + } - + size_t slot = sourcechar->Inventory().FindItemStatIndex(itemstats); - //int slot = sourcechar->Inventory().FindItemInTopLevelBulkWithStats(itemstats); - size_t slot = sourcechar->Inventory().FindItemStatIndex(itemstats); - - if (slot != SIZET_NOT_FOUND) - { - InventoryTransaction srcTran( &sourcechar->Inventory() ); - psItem* item; - item = sourcechar->Inventory().RemoveItemIndex(slot,data.value); // data.value is the stack count to move, or -1 + if (slot == SIZET_NOT_FOUND) + { + psserver->SendSystemError(me->clientnum, + "Cannot find any %s in %s's inventory.", + data.item.GetData(), source->GetActor()->GetName()); + return; + } + + InventoryTransaction srcTran(&sourcechar->Inventory()); + psItem* item = + sourcechar->Inventory().RemoveItemIndex(slot, data.value); // data.value is the stack count to move, or -1 if (!item) { Error2("Cannot RemoveItemIndex on slot %zu.\n", slot); - psserver->SendSystemError(me->clientnum, "Cannot remove %s from %s's inventory.", - data.item.GetData(), source->GetActor()->GetName() ); + psserver->SendSystemError(me->clientnum, + "Cannot remove %s from %s's inventory.", + data.item.GetData(), source->GetActor()->GetName()); return; } psserver->GetCharManager()->UpdateItemViews(source->GetClientNum()); if (item->GetStackCount() < data.value) { - psserver->SendSystemError(me->clientnum, "There are only %d, not %d in the stack.", item->GetStackCount(), data.value ); + psserver->SendSystemError(me->clientnum, + "There are only %d, not %d in the stack.", + item->GetStackCount(), data.value); return; } bool wasEquipped = item->IsEquipped(); // Now here we handle the target machine - InventoryTransaction trgtTran( &targetchar->Inventory() ); + InventoryTransaction trgtTran(&targetchar->Inventory()); if (!targetchar->Inventory().Add(item)) { - psserver->SendSystemError(me->clientnum, "Target inventory is too full to accept item transfer."); + psserver->SendSystemError(me->clientnum, + "Target inventory is too full to accept item transfer."); return; } psserver->GetCharManager()->UpdateItemViews(target->GetClientNum()); // Inform the GM doing the transfer - psserver->SendSystemOK(me->clientnum, "%s transferred from %s's %s to %s", - item->GetName(), - source->GetActor()->GetName(), - wasEquipped?"equipment":"inventory", - target->GetActor()->GetName() ); + psserver->SendSystemOK(me->clientnum, + "%s transferred from %s's %s to %s", item->GetName(), + source->GetActor()->GetName(), wasEquipped ? "equipment" + : "inventory", target->GetActor()->GetName()); // If we're giving to someone else, notify them if (target->GetClientNum() != me->clientnum) { - psserver->SendSystemOK(target->GetClientNum(), "You were given %s by GM %s.", - item->GetName(), - source->GetActor()->GetName() ); + psserver->SendSystemOK(target->GetClientNum(), + "You were given %s by GM %s.", item->GetName(), + source->GetActor()->GetName()); } // If we're taking from someone else, notify them if (source->GetClientNum() != me->clientnum) { - psserver->SendSystemResult(source->GetClientNum(), "%s was taken by GM %s.", - item->GetName(), - target->GetActor()->GetName() ); + psserver->SendSystemResult(source->GetClientNum(), + "%s was taken by GM %s.", item->GetName(), + target->GetActor()->GetName()); } trgtTran.Commit(); srcTran.Commit(); return; } - else if (data.item == "tria") - { - psMoney srcMoney = sourcechar->Money(); - psMoney targetMoney = targetchar->Money(); - int value = data.value; - if (value == -1) - { - value = srcMoney.GetTotal(); - } - else if (value > srcMoney.GetTotal()) - { - value = srcMoney.GetTotal(); - psserver->SendSystemError(me->clientnum, "Only %d tria taken.",srcMoney.GetTotal()); - } - psMoney transferMoney(0, 0, 0, value); - transferMoney = transferMoney.Normalized(); - sourcechar->SetMoney( srcMoney - transferMoney ); - targetchar->SetMoney( targetMoney + transferMoney ); - // If we're taking from someone else, notify them - if (source->GetClientNum() != me->clientnum) - { - psserver->SendSystemResult(source->GetClientNum(), "%d tria was taken by %s.", - value, - target->GetActor()->GetName() ); - } - return; - } - else - { - psserver->SendSystemError(me->clientnum, "Cannot find any %s in %s's inventory.", - data.item.GetData(), source->GetActor()->GetName() ); - return; - } } void AdminManager::CheckItem(MsgEntry* me, psAdminCmdMessage& msg, AdminCmdData& data, Client* target) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-28 16:58:32
|
Revision: 1949 http://planeshift.svn.sourceforge.net/planeshift/?rev=1949&view=rev Author: heinchen Date: 2008-07-28 16:58:41 +0000 (Mon, 28 Jul 2008) Log Message: ----------- -fix for FS#1692 - entities got lost in temporary sector Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/pscelclient.cpp trunk/src/client/pscelclient.h Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-28 16:46:11 UTC (rev 1948) +++ trunk/docs/history.txt 2008-07-28 16:58:41 UTC (rev 1949) @@ -1,4 +1,7 @@ *** 2008-07-28 by Andreas Heinchen +- Fix for FS#1692 - fixing 2 bugs that caused entities to get lost in a temporary sector + +*** 2008-07-28 by Andreas Heinchen - Cleaned up fix for FS#707 *** 2008-07-28 by Andreas Heinchen Modified: trunk/src/client/pscelclient.cpp =================================================================== --- trunk/src/client/pscelclient.cpp 2008-07-28 16:46:11 UTC (rev 1948) +++ trunk/src/client/pscelclient.cpp 2008-07-28 16:58:41 UTC (rev 1949) @@ -15,7 +15,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * Implements the varrious things relating to the CEL for the client. + * Implements the various things relating to the CEL for the client. */ #include <psconfig.h> @@ -958,6 +958,8 @@ bool unresolved = true; + iSector* sectorToBeDeleted = 0; + // Are all the sectors going to be unloaded? for(int i = 0;i<sectors->GetCount();i++) { @@ -968,6 +970,8 @@ // We've found a sector that won't be unloaded so the mesh won't need to be moved unresolved = false; break; + } else { + sectorToBeDeleted = sectors->Get(i); } } @@ -976,7 +980,7 @@ // All the sectors the mesh is in are going to be unloaded Warning1(LOG_ANY,"Moving entity to temporary sector"); // put the mesh to the sector that server uses for keeping meshes located in unload maps - HandleUnresolvedPos(entities[entNum], movable->GetPosition(), 0.0f, unresSector->QueryObject ()->GetName ()); + HandleUnresolvedPos(entities[entNum], movable->GetPosition(), 0.0f, sectorToBeDeleted->QueryObject ()->GetName ()); } } } @@ -1046,8 +1050,8 @@ actor->GetMovement()->SetOnGround(false); delete *posIter; - // Deleting automatically increments the iterator. unresPos.Delete(posIter); + ++posIter; } else ++posIter; Modified: trunk/src/client/pscelclient.h =================================================================== --- trunk/src/client/pscelclient.h 2008-07-28 16:46:11 UTC (rev 1948) +++ trunk/src/client/pscelclient.h 2008-07-28 16:58:41 UTC (rev 1949) @@ -164,7 +164,7 @@ void HandleItemEffect( const char* factName, csRef<iMeshWrapper> mw, bool onGround = true, const char* slot = 0, csHash<int, csString> *effectids = 0, csHash<int, csString> *lightids = 0 ); - /** Caled when new world maps were loaded + /** Called when new world maps were loaded CelClient looks for GEM Objects which have sectors with unknown name and checks if this name is known now */ void OnMapsLoaded(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-28 17:33:48
|
Revision: 1951 http://planeshift.svn.sourceforge.net/planeshift/?rev=1951&view=rev Author: heinchen Date: 2008-07-28 17:33:57 +0000 (Mon, 28 Jul 2008) Log Message: ----------- -fix for FS#1909 patch by Weltall, typofix for FS#707, check against "trias" case insensitive Modified Paths: -------------- trunk/data/gui/illumination.xml trunk/docs/history.txt trunk/src/client/gui/pawsilluminationwindow.cpp trunk/src/client/gui/pawsilluminationwindow.h trunk/src/server/adminmanager.cpp Modified: trunk/data/gui/illumination.xml =================================================================== --- trunk/data/gui/illumination.xml 2008-07-28 17:27:57 UTC (rev 1950) +++ trunk/data/gui/illumination.xml 2008-07-28 17:33:57 UTC (rev 1951) @@ -62,6 +62,16 @@ <bgimage resource="TextTool" /> <eventMouseDown>Ret = SketchWindow:ClickNameTool()</eventMouseDown> </widget> + <widget name="SaveButton" factory="pawsButton" id="111" tooltip="Save (s)"> + <frame x="180" y="0" width="16" height="16" /> + <bgimage resource="FeatherTool" /> + <eventMouseDown>Ret = SketchWindow:ClickSaveButton()</eventMouseDown> + </widget> + <widget name="LoadButton" factory="pawsButton" id="112" tooltip="Load (l)"> + <frame x="200" y="0" width="16" height="16" /> + <bgimage resource="FeatherTool" /> + <eventMouseDown>Ret = SketchWindow:ClickLoadButton()</eventMouseDown> + </widget> </widget> </widget_description> Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-28 17:27:57 UTC (rev 1950) +++ trunk/docs/history.txt 2008-07-28 17:33:57 UTC (rev 1951) @@ -1,11 +1,8 @@ *** 2008-07-28 by Andreas Heinchen - Fix for FS#1692 - fixing 2 bugs that caused entities to get lost in a temporary sector - -*** 2008-07-28 by Andreas Heinchen - Cleaned up fix for FS#707 - -*** 2008-07-28 by Andreas Heinchen - Fixed FS#1826 +- Fixed FS#1909, patch by Weltall. *** 2008-07-28 by Mike Gist - Fixed FS#1925, patch by peeg. Modified: trunk/src/client/gui/pawsilluminationwindow.cpp =================================================================== --- trunk/src/client/gui/pawsilluminationwindow.cpp 2008-07-28 17:27:57 UTC (rev 1950) +++ trunk/src/client/gui/pawsilluminationwindow.cpp 2008-07-28 17:33:57 UTC (rev 1951) @@ -54,6 +54,17 @@ bool pawsSketchWindow::PostSetup() { psengine->GetMsgHandler()->Subscribe(this, MSGTYPE_VIEW_SKETCH); + //setup an easy way to access our widgets + FeatherTool = dynamic_cast<pawsWidget*> (FindWidget("FeatherTool")); + TextTool = dynamic_cast<pawsWidget*> (FindWidget("TextTool")); + LineTool = dynamic_cast<pawsWidget*> (FindWidget("LineTool")); + PlusTool = dynamic_cast<pawsWidget*> (FindWidget("PlusTool")); + LeftArrowTool = dynamic_cast<pawsWidget*> (FindWidget("LeftArrowTool")); + RightArrowTool = dynamic_cast<pawsWidget*> (FindWidget("RightArrowTool")); + DeleteTool = dynamic_cast<pawsWidget*> (FindWidget("DeleteTool")); + NameTool = dynamic_cast<pawsWidget*> (FindWidget("NameTool")); + SaveButton = dynamic_cast<pawsWidget*> (FindWidget("SaveButton")); + LoadButton = dynamic_cast<pawsWidget*> (FindWidget("LoadButton")); return true; } @@ -72,14 +83,63 @@ currentItemID = msg.ItemID; Notify4(LOG_PAWS,"Got Sketch for item %u: %s\nLimits:%s\n", msg.ItemID, msg.Sketch.GetData(), msg.limits.GetDataSafe()); objlist.Empty(); - - ParseSketch(msg.Sketch); + dirty = false; ParseLimits(msg.limits); - + ParseSketch(msg.Sketch); + // if char does not have the right to edit (ie not the originator-artist)... if (!msg.rightToEdit) readOnly = true; + + if(readOnly) + { + //hide useless widgets in the window so the sketch is more clean + //to whoever looks at it while not being the author + if(FeatherTool) + FeatherTool->Hide(); + if(TextTool) + TextTool->Hide(); + if(LineTool) + LineTool->Hide(); + if(PlusTool) + PlusTool->Hide(); + if(LeftArrowTool) + LeftArrowTool->Hide(); + if(RightArrowTool) + RightArrowTool->Hide(); + if(DeleteTool) + DeleteTool->Hide(); + if(NameTool) + NameTool->Hide(); + if(SaveButton) + SaveButton->Hide(); + if(LoadButton) + LoadButton->Hide(); + } + else //we have editing rights so let's show buttons to do some editing + { + if(FeatherTool) + FeatherTool->Show(); + if(TextTool) + TextTool->Show(); + if(LineTool) + LineTool->Show(); + if(PlusTool) + PlusTool->Show(); + if(LeftArrowTool) + LeftArrowTool->Show(); + if(RightArrowTool) + RightArrowTool->Show(); + if(DeleteTool) + DeleteTool->Show(); + if(NameTool) + NameTool->Show(); + if(SaveButton) + SaveButton->Show(); + if(LoadButton) + LoadButton->Show(); + } sketchName = msg.name; SetTitle(sketchName); @@ -182,6 +242,16 @@ OnKeyDown(0,'n',0); return 0.0; } + else if (!strcasecmp(functionName,"ClickSaveButton")) + { + OnKeyDown(0,'s',0); + return 0.0; + } + else if (!strcasecmp(functionName,"ClickLoadButton")) + { + OnKeyDown(0,'l',0); + return 0.0; + } // else call parent version to inherit other functions return pawsWidget::CalcFunction(functionName,params); @@ -225,6 +295,11 @@ } return true; } + else if (key == 's' && !readOnly) //allow saving also when not in edit mode but check if the player saving the sketch + { //has editing rights over the sketch it's being saved + SaveSketch(); + return true; + } else if (editMode) { if (key == '+') // keycode is the kbd scan code, key is the ASCII @@ -247,6 +322,11 @@ ChangeSketchName(); return true; } + else if (key == 'l') //allow loading only in editing mode + { + LoadSketch(); + return true; + } switch (keyCode) { case CSKEY_DEL: RemoveSelected(); @@ -301,7 +381,6 @@ { int x = (ScreenFrame().xmax + ScreenFrame().xmin)/2 - ScreenFrame().xmin; int y = (ScreenFrame().ymax + ScreenFrame().ymin)/2 - ScreenFrame().ymin; - SketchText *text = new SketchText(x,y,value,this); objlist.Push(text); } @@ -310,7 +389,24 @@ sketchName = value; SetTitle(sketchName); } - + else if (!strcasecmp(name,"FileNameBox")) + { + //we got to load the sketch we were asked for + csRef<iVFS> vfs = psengine->GetVFS(); + csString tempFileName; + tempFileName.Format("/planeshift/userdata/sketches/%s", value); + if (!vfs->Exists(tempFileName)) + { + psSystemMessage msg(0, MSG_ERROR, "File not found!" ); + msg.FireEvent(); + return; + } + csRef<iDataBuffer> buff = vfs->ReadFile(tempFileName); //reads the file + csString sketchxml = buff->operator*(); //converts what we have read in something our ParseSketch function can + //understand + objlist.Empty(); //clears the objlist to start loading our new sketch from clean + ParseSketch(sketchxml); //loads our sketch + } } void pawsSketchWindow::AddSketchLine() @@ -401,6 +497,57 @@ } } +void pawsSketchWindow::SaveSketch() +{ + csString xml; + //generates the xml document from the objects currently displayed in the sketch + xml = "<pages><page "; + xml.AppendFmt("l=\"%d\" t=\"%d\" w=\"%d\" h=\"%d\">", + GetLogicalWidth(screenFrame.xmin), + GetLogicalHeight(screenFrame.ymin), + GetLogicalWidth(screenFrame.xmax-screenFrame.xmin), + GetLogicalHeight(screenFrame.ymax-screenFrame.ymin)); + + for (size_t i=0; i<objlist.GetSize(); i++) + objlist[i]->WriteXml(xml); + + xml += "</page></pages>"; + csRef<iVFS> vfs = psengine->GetVFS(); + unsigned int tempNumber = 0; + //searchs for a free sketch slot in the user directory and write in it + csString tempFileNameTemplate = "/planeshift/userdata/sketches/%s.xml", tempFileName; + if (filenameSafe(sketchName).Length()) + { + tempFileName.Format(tempFileNameTemplate, filenameSafe(sketchName).GetData()); + } + else + { + tempFileNameTemplate = "/planeshift/userdata/books/book%d.txt"; + do + { + tempFileName.Format(tempFileNameTemplate, tempNumber); + tempNumber++; + } while (vfs->Exists(tempFileName)); + } + + vfs->WriteFile(tempFileName, xml, xml.Length()); + psSystemMessage msg(0, MSG_ACK, "Sketch saved to %s", tempFileName.GetData()+30 ); + msg.FireEvent(); +} + +void pawsSketchWindow::LoadSketch() +{ + if (!stringPending) + { + stringPending = true; + + //This window calls OnStringEntered when Ok is pressed. + //Asks to the user the file name of the sketch inside the sketches directory under their user directory + pawsStringPromptWindow::Create("Enter local filename", "", + false, 220, 20, this, "FileNameBox",0,true); + } +} + bool pawsSketchWindow::OnMouseDown( int button, int modifiers, int x, int y ) { if (!editMode) @@ -556,6 +703,8 @@ SketchObject *obj=NULL; csRef<iDocumentNode> tmp = pagenodes->Next(); csString type = tmp->GetValue(); + if((int)objlist.GetSize() >= primCount) //are we under the limitations?... + break; //...it seems we aren't so break before going on, at least one part of sketch is available // Determine what type to create, and create it if (type == "ic") // icon obj = new SketchIcon; @@ -937,3 +1086,23 @@ } } } + +bool pawsSketchWindow::isBadChar(char c) +{ + csString badChars = "/\\?%*:|\"<>"; + if (badChars.FindFirst(c) == (size_t) -1) + return false; + else + return true; +} + +csString pawsSketchWindow::filenameSafe(const csString &original) +{ + csString safe; + size_t len = original.Length(); + for (size_t c = 0; c < len; ++c) { + if (!isBadChar(original[c])) + safe += original[c]; + } + return safe; +} Modified: trunk/src/client/gui/pawsilluminationwindow.h =================================================================== --- trunk/src/client/gui/pawsilluminationwindow.h 2008-07-28 17:27:57 UTC (rev 1950) +++ trunk/src/client/gui/pawsilluminationwindow.h 2008-07-28 17:33:57 UTC (rev 1951) @@ -115,6 +115,17 @@ int primCount; bool readOnly; bool stringPending; + + pawsWidget* FeatherTool; + pawsWidget* TextTool; + pawsWidget* LineTool; + pawsWidget* PlusTool; + pawsWidget* LeftArrowTool; + pawsWidget* RightArrowTool; + pawsWidget* DeleteTool; + pawsWidget* NameTool; + pawsWidget* SaveButton; + pawsWidget* LoadButton; void DrawSketch(); bool ParseSketch(const char *xml); @@ -127,6 +138,10 @@ void NextPrevIcon(int delta); void MoveObject(int dx, int dy); void ChangeSketchName(); + void SaveSketch(); + void LoadSketch(); + bool isBadChar(char c); + csString filenameSafe(const csString &original); csString sketchName; Modified: trunk/src/server/adminmanager.cpp =================================================================== --- trunk/src/server/adminmanager.cpp 2008-07-28 17:27:57 UTC (rev 1950) +++ trunk/src/server/adminmanager.cpp 2008-07-28 17:33:57 UTC (rev 1951) @@ -5939,7 +5939,7 @@ psCharacter* targetchar = target->GetCharacterData(); psCharacter* sourcechar = source->GetCharacterData(); - if (data.item == "tria") + if (data.item.Downcase() == "tria") { psMoney srcMoney = sourcechar->Money(); psMoney targetMoney = targetchar->Money(); @@ -5970,7 +5970,7 @@ if (target->GetClientNum() != me->clientnum) { psserver->SendSystemOK(target->GetClientNum(), - "%d tria was by GM %s.", value, + "%d tria was given by GM %s.", value, source->GetActor()->GetName()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2008-07-28 17:35:57
|
Revision: 1952 http://planeshift.svn.sourceforge.net/planeshift/?rev=1952&view=rev Author: mgist Date: 2008-07-28 17:36:06 +0000 (Mon, 28 Jul 2008) Log Message: ----------- - Patch for FS#1855 from Arerano. Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/gui/inventorywindow.cpp trunk/src/client/gui/pawscontainerdescwindow.cpp trunk/src/client/gui/pawsexchangewindow.cpp trunk/src/client/gui/pawssmallinventory.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-28 17:33:57 UTC (rev 1951) +++ trunk/docs/history.txt 2008-07-28 17:36:06 UTC (rev 1952) @@ -9,6 +9,7 @@ - Patch for FS#2001 from weltall. - Fixed a memory leak caused by a reference leak in netbase. - Patch for FS#1912 from weltall. +- Patch for FS#1855 from Arerano. *** 2008-07-24 by Steven Patrick - Fixed FS#1991 - deputizing doesn't update GM console, patch by Zwenze. Modified: trunk/src/client/gui/inventorywindow.cpp =================================================================== --- trunk/src/client/gui/inventorywindow.cpp 2008-07-28 17:33:57 UTC (rev 1951) +++ trunk/src/client/gui/inventorywindow.cpp 2008-07-28 17:36:06 UTC (rev 1952) @@ -156,26 +156,36 @@ if ( !SetupSlot("torso") ) return false; if ( !SetupSlot("mind") ) return false; - pawsListBox * bulkList = dynamic_cast <pawsListBox*> (FindWidget("BulkList")); - for (int i = 0; i < INVENTORY_BULK_COUNT/2; i++) + pawsListBox * bulkList = dynamic_cast <pawsListBox*> (FindWidget("BulkList")); + int colCount = bulkList->GetTotalColumns(); + int rowCount = (int) ceil(float(INVENTORY_BULK_COUNT)/colCount); + + for(int r = 0; r < rowCount; r ++) { - pawsListBoxRow * listRow = bulkList->NewRow(i); - for (int j = 0; j < 2; j++) + pawsListBoxRow * listRow = bulkList->NewRow(r); + for (int j = 0; j < colCount; j++) { + int i = r*colCount + j; pawsSlot * slot; slot = dynamic_cast <pawsSlot*> (listRow->GetColumn(j)); slot->SetContainer( CONTAINER_INVENTORY_BULK ); //csString name; - slot->SetSlotID( i*2+j ); + slot->SetSlotID( i ); csString name; - name.Format("invslot_%d", 16 + i*2+j); // 16 equip slots come first + name.Format("invslot_%d", 16 + i ); // 16 equip slots come first slot->SetSlotName(name); + if(i >= INVENTORY_BULK_COUNT) + { + slot->Hide(); + continue; + } + //printf("Subscribing bulk slot to %s.\n",name.GetData() ); PawsManager::GetSingleton().Subscribe( name, slot ); PawsManager::GetSingleton().Subscribe("sigClearInventorySlots", slot); - bulkSlots[i*2+j] = slot; - } + bulkSlots[i] = slot; + } } // Ask the server to send us the inventory Modified: trunk/src/client/gui/pawscontainerdescwindow.cpp =================================================================== --- trunk/src/client/gui/pawscontainerdescwindow.cpp 2008-07-28 17:33:57 UTC (rev 1951) +++ trunk/src/client/gui/pawscontainerdescwindow.cpp 2008-07-28 17:36:06 UTC (rev 1952) @@ -146,7 +146,7 @@ contents->Clear(); containerSlots = PSITEM_MAX_CONTAINER_SLOTS; - const int cols = 6; + const int cols = contents->GetTotalColumns(); //6; const int rows = (int) ceil(float(containerSlots)/cols); for (int i = 0; i < rows; i++) { Modified: trunk/src/client/gui/pawsexchangewindow.cpp =================================================================== --- trunk/src/client/gui/pawsexchangewindow.cpp 2008-07-28 17:33:57 UTC (rev 1951) +++ trunk/src/client/gui/pawsexchangewindow.cpp 2008-07-28 17:36:06 UTC (rev 1952) @@ -114,20 +114,28 @@ if (!bulkList) return false; - int i, j; + int colCount = bulkList->GetTotalColumns(); + int rowCount = (int) ceil(float(EXCHANGE_SLOT_COUNT)/colCount); + int r, j, i; - for (i = 0; i < EXCHANGE_SLOT_COUNT/NUM_COLUMNS; i++) + for (r = 0; r < rowCount; r++) { - pawsListBoxRow * listRow = bulkList->NewRow(i); - for (j = 0; j < NUM_COLUMNS; j++) + pawsListBoxRow * listRow = bulkList->NewRow(r); + for (j = 0; j < colCount; j++) { + i = r*colCount+j; pawsSlot * slot; slot = dynamic_cast <pawsSlot*> (listRow->GetColumn(j)); if (slot == NULL) return false; slot->SetContainer( CONTAINER_EXCHANGE_OFFERING ); - slot->SetSlotID( i*2+j ); - offeringSlots[i*2+j] = slot; + slot->SetSlotID( i ); + if (i >= EXCHANGE_SLOT_COUNT) + { + slot->Hide(); + continue; + } + offeringSlots[i] = slot; } } @@ -136,19 +144,28 @@ if (!bulkList) return false; - for (i = 0; i < EXCHANGE_SLOT_COUNT/NUM_COLUMNS; i++) + colCount = bulkList->GetTotalColumns(); + rowCount = (int) ceil(float(EXCHANGE_SLOT_COUNT)/colCount); + + for (r = 0; r < rowCount; r++) { - pawsListBoxRow * listRow = bulkList->NewRow(i); - for (j = 0; j < NUM_COLUMNS; j++) + pawsListBoxRow * listRow = bulkList->NewRow(r); + for (j = 0; j < colCount; j++) { + i = r*colCount+j; pawsSlot * slot; slot = dynamic_cast <pawsSlot*> (listRow->GetColumn(j)); if (slot == NULL) return false; slot->SetContainer( CONTAINER_EXCHANGE_RECEIVING ); - slot->SetSlotID( i*2+j ); + slot->SetSlotID( i ); slot->SetDrag(false); - receivingSlots[i*2+j] = slot; + if (i >= EXCHANGE_SLOT_COUNT) + { + slot->Hide(); + continue; + } + receivingSlots[i] = slot; } } Modified: trunk/src/client/gui/pawssmallinventory.cpp =================================================================== --- trunk/src/client/gui/pawssmallinventory.cpp 2008-07-28 17:33:57 UTC (rev 1951) +++ trunk/src/client/gui/pawssmallinventory.cpp 2008-07-28 17:36:06 UTC (rev 1952) @@ -60,25 +60,39 @@ border->JustTitle(); // Setup our inventory slots in the list box. - pawsListBox * bulkList = dynamic_cast <pawsListBox*> (FindWidget("BulkList")); - for (int i = 0; i < INVENTORY_BULK_COUNT/2; i++) + pawsListBox * bulkList = dynamic_cast <pawsListBox*> (FindWidget("BulkList")); + + int colCount = bulkList->GetTotalColumns(); + int rowCount = (int) ceil(float(INVENTORY_BULK_COUNT)/colCount); + + for(int r = 0; r < rowCount; r ++) { - pawsListBoxRow * listRow = bulkList->NewRow(i); - for (int j = 0; j < 2; j++) + pawsListBoxRow * listRow = bulkList->NewRow(r); + for (int j = 0; j < colCount; j++) { + int i = r*colCount + j; pawsSlot * slot; slot = dynamic_cast <pawsSlot*> (listRow->GetColumn(j)); slot->SetContainer( CONTAINER_INVENTORY_BULK ); - slot->SetSlotID( i*2+j ); + //csString name; + slot->SetSlotID( i ); csString name; - name.Format("invslot_%d",16 + i*2+j); + name.Format("invslot_%d", 16 + i ); // 16 equip slots come first slot->SetSlotName(name); + + if(i >= INVENTORY_BULK_COUNT) + { + slot->Hide(); + continue; + } + + //printf("Subscribing bulk slot to %s.\n",name.GetData() ); PawsManager::GetSingleton().Subscribe( name, slot ); PawsManager::GetSingleton().Subscribe("sigClearInventorySlots", slot); - slot->SetName( name ); - bulkSlots[i*2+j] = slot; - } - } + bulkSlots[i] = slot; + } + } + money = dynamic_cast <pawsMoney*> (FindWidget("Money")); if ( !money ) return false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-28 20:20:32
|
Revision: 1955 http://planeshift.svn.sourceforge.net/planeshift/?rev=1955&view=rev Author: heinchen Date: 2008-07-28 20:20:42 +0000 (Mon, 28 Jul 2008) Log Message: ----------- fix for FS#2028, sketches (pawsillumination) remains resizable if a window was closed while editing Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/gui/pawsilluminationwindow.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-28 18:08:24 UTC (rev 1954) +++ trunk/docs/history.txt 2008-07-28 20:20:42 UTC (rev 1955) @@ -2,7 +2,7 @@ - Fix for FS#1692 - fixing 2 bugs that caused entities to get lost in a temporary sector - Cleaned up fix for FS#707 - Fixed FS#1826 -- Fixed FS#1909, patch by Weltall. +- Fixed FS#1909 and FS#2028, patch by Weltall. *** 2008-07-28 by Mike Gist - Fixed FS#1925, patch by peeg. Modified: trunk/src/client/gui/pawsilluminationwindow.cpp =================================================================== --- trunk/src/client/gui/pawsilluminationwindow.cpp 2008-07-28 18:08:24 UTC (rev 1954) +++ trunk/src/client/gui/pawsilluminationwindow.cpp 2008-07-28 20:20:42 UTC (rev 1955) @@ -77,6 +77,7 @@ void pawsSketchWindow::HandleMessage( MsgEntry* me ) { editMode = false; + isResizable = false; stringPending = false; psSketchMessage msg( me ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2008-07-28 20:52:29
|
Revision: 1957 http://planeshift.svn.sourceforge.net/planeshift/?rev=1957&view=rev Author: mgist Date: 2008-07-28 20:52:37 +0000 (Mon, 28 Jul 2008) Log Message: ----------- - Patch for FS#107 from peeg. Modified Paths: -------------- trunk/data/gui/petitiongm.xml trunk/docs/history.txt trunk/src/client/gui/pawspetitiongmwindow.cpp trunk/src/client/gui/pawspetitiongmwindow.h trunk/src/common/net/messages.cpp trunk/src/common/net/messages.h trunk/src/common/paws/pawslistbox.cpp trunk/src/server/adminmanager.cpp Modified: trunk/data/gui/petitiongm.xml =================================================================== --- trunk/data/gui/petitiongm.xml 2008-07-28 20:40:50 UTC (rev 1956) +++ trunk/data/gui/petitiongm.xml 2008-07-28 20:52:37 UTC (rev 1957) @@ -9,7 +9,7 @@ <bgimage resource="Petitions Background" alpha="128" /> <widget name="PetitionList" factory="pawsListBox"> - <frame x="35" y="0" width="532" height="176" border="no"/> + <frame x="25" y="0" width="545" height="176" border="no"/> <font name="/planeshift/data/ttf/cupandtalon.ttf" r="255" g="255" b="255" size="12" /> <columns height="20" headings="yes"> <column width="30" > @@ -17,11 +17,16 @@ <font name="/planeshift/data/ttf/LiberationSans-Regular.ttf" r="180" g="180" b="180" size="10" /> </widget> </column> - <column width="100" > - <widget name="Player Name" factory="pawsTextBox"> + <column width="80" > + <widget name="Player" factory="pawsTextBox"> <font name="/planeshift/data/ttf/LiberationSans-Regular.ttf" r="180" g="180" b="180" size="10" /> </widget> </column> + <column width="40" > + <widget name="Online" factory="pawsTextBox"> + <font name="/planeshift/data/ttf/LiberationSans-Regular.ttf" r="180" g="180" b="180" size="10" /> + </widget> + </column> <column width="80" > <widget name="Status" factory="pawsTextBox"> <font name="/planeshift/data/ttf/LiberationSans-Regular.ttf" r="180" g="180" b="180" size="10" /> @@ -32,7 +37,7 @@ <font name="/planeshift/data/ttf/LiberationSans-Regular.ttf" r="180" g="180" b="180" size="10" /> </widget> </column> - <column width="207"> + <column width="200"> <widget name="Petition" factory="pawsTextBox"> <font name="/planeshift/data/ttf/LiberationSans-Regular.ttf" r="180" g="180" b="180" size="10" /> </widget> Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-28 20:40:50 UTC (rev 1956) +++ trunk/docs/history.txt 2008-07-28 20:52:37 UTC (rev 1957) @@ -10,6 +10,9 @@ - Fixed a memory leak caused by a reference leak in netbase. - Patch for FS#1912 from weltall. - Patch for FS#1855 from Arerano. +- Fix for the last part of FS#74, patch by Kaerli. +- Patch for FS#107 from peeg. +=> NETVERSION BUMP! *** 2008-07-24 by Steven Patrick - Fixed FS#1991 - deputizing doesn't update GM console, patch by Zwenze. Modified: trunk/src/client/gui/pawspetitiongmwindow.cpp =================================================================== --- trunk/src/client/gui/pawspetitiongmwindow.cpp 2008-07-28 20:40:50 UTC (rev 1956) +++ trunk/src/client/gui/pawspetitiongmwindow.cpp 2008-07-28 20:52:37 UTC (rev 1957) @@ -567,6 +567,7 @@ selectedPet.status = petitionList->GetTextCellValue(selRow, PGMCOL_STATUS); selectedPet.created = petitionList->GetTextCellValue(selRow, PGMCOL_CREATED); selectedPet.petition = petitionList->GetTextCellValue(selRow, PGMCOL_PETITION); + selectedPet.online = petitionList->GetTextCellValue(selRow, PGMCOL_ONLINE); } else { @@ -587,6 +588,7 @@ petitionList->NewRow(i); SetText(i, PGMCOL_LVL, "%d", info.escalation); SetText(i, PGMCOL_PLAYER, "%s", info.player.GetData()); + SetText(i, PGMCOL_ONLINE, "%s", (info.online ? "yes" : "no")); SetText(i, PGMCOL_STATUS, "%s", info.status.GetData()); SetText(i, PGMCOL_CREATED, "%s", info.created.GetData()); SetText(i, PGMCOL_PETITION, "%s", info.petition.GetData()); Modified: trunk/src/client/gui/pawspetitiongmwindow.h =================================================================== --- trunk/src/client/gui/pawspetitiongmwindow.h 2008-07-28 20:40:50 UTC (rev 1956) +++ trunk/src/client/gui/pawspetitiongmwindow.h 2008-07-28 20:52:37 UTC (rev 1957) @@ -29,9 +29,10 @@ enum { PGMCOL_LVL = 0, PGMCOL_PLAYER = 1, - PGMCOL_STATUS = 2, - PGMCOL_CREATED = 3, - PGMCOL_PETITION = 4 + PGMCOL_ONLINE = 2, + PGMCOL_STATUS = 3, + PGMCOL_CREATED = 4, + PGMCOL_PETITION = 5 }; /** Defines the length a petition can be before it is Modified: trunk/src/common/net/messages.cpp =================================================================== --- trunk/src/common/net/messages.cpp 2008-07-28 20:40:50 UTC (rev 1956) +++ trunk/src/common/net/messages.cpp 2008-07-28 20:52:37 UTC (rev 1957) @@ -636,7 +636,8 @@ { messageSize+=sizeof(int32_t); messageSize+=curr->created.Length()+1; - messageSize+=curr->player.Length()+1; + messageSize+=curr->player.Length()+1; + messageSize+=sizeof(bool); // online flag for players } } @@ -677,6 +678,7 @@ msg->Add((int32_t)current->escalation); msg->Add(current->created.GetData()); msg->Add(current->player.GetData()); + msg->Add(current->online); } } msg->Add(errMsg); @@ -716,6 +718,7 @@ current.escalation = message->GetInt32(); current.created = message->GetStr(); current.player = message->GetStr(); + current.online = message->GetBool(); } petitions.Push(current); Modified: trunk/src/common/net/messages.h =================================================================== --- trunk/src/common/net/messages.h 2008-07-28 20:40:50 UTC (rev 1956) +++ trunk/src/common/net/messages.h 2008-07-28 20:52:37 UTC (rev 1957) @@ -858,6 +858,8 @@ csString player; // the player csString created; // date and time of creation csString resolution; // resolution of a closed petition + + bool online; // is the player online? }; enum { Modified: trunk/src/common/paws/pawslistbox.cpp =================================================================== --- trunk/src/common/paws/pawslistbox.cpp 2008-07-28 20:40:50 UTC (rev 1956) +++ trunk/src/common/paws/pawslistbox.cpp 2008-07-28 20:52:37 UTC (rev 1957) @@ -298,7 +298,7 @@ titleRow = new pawsListBoxRow(); titleRow->SetParent( this ); - titleRow->SetRelativeFrame( 5, 0, + titleRow->SetRelativeFrame( 0, 0, ScreenFrame().Width() , GetActualHeight(columnHeight) ); for ( int x = 0; x < totalColumns; x++ ) @@ -1164,7 +1164,7 @@ for ( int x = 0; x < column; x++ ) offset+=def[x].width; - title->SetRelativeFrame( offset+4, 4, def[column].width, def[column].height ); + title->SetRelativeFrame( offset-4, -4, def[column].width, def[column].height ); innerWidget->SetRelativeFrame(4, 4, def[column].width, def[column].height ); title->SetID(column); } Modified: trunk/src/server/adminmanager.cpp =================================================================== --- trunk/src/server/adminmanager.cpp 2008-07-28 20:40:50 UTC (rev 1956) +++ trunk/src/server/adminmanager.cpp 2008-07-28 20:52:37 UTC (rev 1957) @@ -4632,7 +4632,8 @@ info.escalation = atoi((*rs)[i][3]); info.created = csString((*rs)[i][4]).Slice(0, 16); info.player = (*rs)[i][5]; - + info.online = (clients->Find(info.player) ? true : false); + // Append to the message: petitions.Push(info); } @@ -4717,8 +4718,9 @@ info.petition = (*rs)[i][1]; info.status = (*rs)[i][2]; info.escalation = atoi((*rs)[i][3]); - info.created = (*rs)[i][4]; + info.created = csString((*rs)[i][4]).Slice(0, 16); info.player = (*rs)[i][5]; + info.online = (clients->Find(info.player) ? true : false); // Append to the message: petitions.Push(info); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ken...@us...> - 2008-07-29 11:11:42
|
Revision: 1959 http://planeshift.svn.sourceforge.net/planeshift/?rev=1959&view=rev Author: kennygraunke Date: 2008-07-29 11:11:50 +0000 (Tue, 29 Jul 2008) Log Message: ----------- - Fixed bugs caused by using the wrong IDs in r1908. Specifically, I saw that items in containers were failing to load, and most action locations didn't work. There were almost certainly others. Before r1908, entities_by_ps_id was hashed by either PID or UID, containing both items and actors - iteration and dynamic casts sorted it out in case of ID collision. This was very confusing, so rather than reintroducing it, I made separate hash tables for actors and items. Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/creationmanager.cpp trunk/src/server/entitymanager.cpp trunk/src/server/gem.cpp trunk/src/server/gem.h Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-29 01:09:43 UTC (rev 1958) +++ trunk/docs/history.txt 2008-07-29 11:11:50 UTC (rev 1959) @@ -1,3 +1,7 @@ +*** 2008-07-29 by Kenny Graunke +- Fixed bugs caused by using the wrong IDs in r1908. Specifically, items in + containers were failing to load, and most action locations didn't work. + *** 2008-07-28 by Andreas Heinchen - Fix for FS#1692 - fixing 2 bugs that caused entities to get lost in a temporary sector - Cleaned up fix for FS#707 Modified: trunk/src/server/creationmanager.cpp =================================================================== --- trunk/src/server/creationmanager.cpp 2008-07-29 01:09:43 UTC (rev 1958) +++ trunk/src/server/creationmanager.cpp 2008-07-29 11:11:50 UTC (rev 1959) @@ -935,8 +935,7 @@ newinstance, EntityManager::GetSingleton().FindSector(sectorinfo->name), csVector3(x,y,z),yrot, - client->GetClientNum(), - GEMSupervisor::GetSingleton().GetNextID()); + client->GetClientNum()); actor->SetupCharData(); Modified: trunk/src/server/entitymanager.cpp =================================================================== --- trunk/src/server/entitymanager.cpp 2008-07-29 01:09:43 UTC (rev 1958) +++ trunk/src/server/entitymanager.cpp 2008-07-29 11:11:50 UTC (rev 1959) @@ -584,7 +584,7 @@ gemActor *actor = new gemActor(chardata,raceinfo->mesh_name,filename, instance,sector,pos,yrot, - client->GetClientNum(),gem->GetNextID() ); + client->GetClientNum()); client->SetActor(actor); @@ -722,8 +722,7 @@ } gemNPC *actor = new gemNPC(chardata, raceinfo->mesh_name, raceinfo->GetMeshFileName(), - instance, sector, pos, yrot, 0, - gem->GetNextID()); + instance, sector, pos, yrot, 0); if ( !actor->IsValid() ) { @@ -848,13 +847,11 @@ if (iteminstance->GetIsContainer()) { - obj = new gemContainer(iteminstance,meshname, - meshfile,instance,isec,newpos,yrot,0, gem->GetNextID()); + obj = new gemContainer(iteminstance,meshname,meshfile,instance,isec,newpos,yrot,0); } else { - obj = new gemItem(iteminstance,meshname, - meshfile,instance,isec,newpos,yrot,0,gem->GetNextID()); + obj = new gemItem(iteminstance,meshname,meshfile,instance,isec,newpos,yrot,0); } // Won't create item if gemItem entity was not created @@ -889,11 +886,11 @@ isec = FindSector( sector ); if ( isec == NULL ) { - CPrintf(CON_ERROR, "Action Location ID %u : Sector not found!\n", gem->GetNextID()); + CPrintf(CON_ERROR, "Action Location ID %u : Sector not found!\n", instance->id); return false; } - gemActionLocation *obj = new gemActionLocation( gem, instance, isec, 0, gem->GetNextID()); + gemActionLocation *obj = new gemActionLocation(instance, isec, 0); //won't create item if gemItem entity was not created //if ( obj->GetEntity() == NULL ) Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2008-07-29 01:09:43 UTC (rev 1958) +++ trunk/src/server/gem.cpp 2008-07-29 11:11:50 UTC (rev 1959) @@ -141,17 +141,17 @@ GEMSupervisor::~GEMSupervisor() { // Slow but safe method of deleting. - size_t count = entities_by_ps_id.GetSize(); + size_t count = entities_by_eid.GetSize(); while(count > 0) { - csHash<gemObject *>::GlobalIterator i(entities_by_ps_id.GetIterator()); + csHash<gemObject *>::GlobalIterator i(entities_by_eid.GetIterator()); gemObject* obj = i.Next(); delete obj; // Make sure the gemObject has deleted itself from our list otherwise // something has gone very wrong. - CS_ASSERT(count > entities_by_ps_id.GetSize()); - count = entities_by_ps_id.GetSize(); + CS_ASSERT(count > entities_by_eid.GetSize()); + count = entities_by_eid.GetSize(); continue; } if (psserver->GetEventManager()) @@ -203,27 +203,52 @@ return nextEID++; } -void GEMSupervisor::CreateEntity(gemObject *obj) +PS_ID GEMSupervisor::CreateEntity(gemObject *obj) { + const PS_ID eid = GetNextID(); + if (obj) { - entities_by_ps_id.Put(obj->GetEntityID(), obj); - Debug3(LOG_CELPERSIST,0,"Entity <%s> added to supervisor with ID: %d\n", obj->GetName(), obj->GetEntityID()); + entities_by_eid.Put(eid, obj); + Debug3(LOG_CELPERSIST,0,"Entity <%s> added to supervisor with ID: %d\n", obj->GetName(), eid); } + + return eid; } +void GEMSupervisor::AddActorEntity(gemActor *actor) +{ + actors_by_pid.Put(actor->GetPlayerID(), actor); + Debug3(LOG_CELPERSIST,0,"Actor added to supervisor with EID:%u and PID:%u.\n", actor->GetEntityID(), actor->GetPlayerID()); +} + +void GEMSupervisor::AddItemEntity(gemItem *item) +{ + items_by_uid.Put(item->GetItem()->GetUID(), item); + Debug3(LOG_CELPERSIST,0,"Item added to supervisor with EID:%u and UID:%u.\n", item->GetEntityID(), item->GetItem()->GetUID()); +} + void GEMSupervisor::RemoveEntity(gemObject *which) { - if ( which ) + if (!which) + return; + + entities_by_eid.Delete(which->GetEntityID(), which); + Debug3(LOG_CELPERSIST,0,"Entity <%s> removed from supervisor with ID: %d\n", which->GetName(), which->GetEntityID()); + + if (which->GetPlayerID()) { - Debug3(LOG_CELPERSIST,0,"Entity <%s> removed from supervisor with ID: %d\n", which->GetName(), which->GetEntityID()); - entities_by_ps_id.Delete(which->GetEntityID(), which); - } + actors_by_pid.Delete(which->GetPlayerID(), (gemActor*) which); + } + else if (which->GetItem()) + { + items_by_uid.Delete(which->GetItem()->GetUID(), (gemItem*) which); + } } void GEMSupervisor::RemoveClientFromLootables(int cnum) { - csHash<gemObject *>::GlobalIterator i(entities_by_ps_id.GetIterator()); + csHash<gemObject *>::GlobalIterator i(entities_by_eid.GetIterator()); while ( i.HasNext() ) { gemObject* obj = i.Next(); @@ -240,7 +265,7 @@ if (id == 0) // ID zero is a placeholder for "no object." return NULL; - csHash<gemObject *>::Iterator i(entities_by_ps_id.GetIterator(id)); + csHash<gemObject *>::Iterator i(entities_by_eid.GetIterator(id)); gemObject* obj; while ( i.HasNext() ) @@ -254,63 +279,9 @@ return NULL; } -#if 0 -/** THIS AN HACK, USED IN psserverchar.cpp and actionmanager.cpp -* TO BE CHANGED ASAP FOR PERFORMANCE REASONS -*/ -gemItem *GEMSupervisor::FindObjectFromInstanceID(PS_ID instance_id) -{ - // Get all entities (gemObjects) - csHash<gemObject *>& gems = GEMSupervisor::GetSingleton().GetAllGEMS(); - - csHash<gemObject *>::GlobalIterator i(gems.GetIterator()); - gemObject* obj; - gemItem *foundgItem = NULL; - - // Iterate through each one - while ( i.HasNext() ) - { - obj = i.Next(); - if (obj) - { - gemItem *gItem = dynamic_cast<gemItem*>(obj); - if (gItem) - { - psItem *pItem = gItem->GetItem(); - - if ( pItem->GetUID() == instance_id ) - { - foundgItem = gItem; - break; - } - } - } - } - - return foundgItem; -} -#endif - -PS_ID GEMSupervisor::FindItemID(psItem *item) -{ - if (item == NULL) - return 0; - - csHash<gemObject *>::GlobalIterator i(entities_by_ps_id.GetIterator()); - while ( i.HasNext() ) - { - gemObject* obj = i.Next(); - if ( obj->GetItem() == item) - return obj->GetEntityID(); - } - Error1("No ID was found."); - return 0; -} - - gemObject *GEMSupervisor::FindObject(const csString& name) { - csHash<gemObject *>::GlobalIterator i(entities_by_ps_id.GetIterator()); + csHash<gemObject *>::GlobalIterator i(entities_by_eid.GetIterator()); while ( i.HasNext() ) { @@ -324,49 +295,22 @@ gemActor *GEMSupervisor::FindPlayerEntity(int player_id) { - csHash<gemObject *>::Iterator iter(entities_by_ps_id.GetIterator(player_id)); - - while (iter.HasNext()) - { - gemObject *obj = iter.Next(); - gemActor *actor = dynamic_cast<gemActor*>(obj); - if (actor) - return actor; - } - return NULL; + return actors_by_pid.Get(player_id, NULL); } gemNPC *GEMSupervisor::FindNPCEntity(int npc_id) { - csHash<gemObject *>::Iterator iter(entities_by_ps_id.GetIterator(npc_id)); - - while (iter.HasNext()) - { - gemObject *obj = iter.Next(); - gemNPC *npc = dynamic_cast<gemNPC*>(obj); - if (npc) - return npc; - } - return NULL; + return dynamic_cast<gemNPC*>(actors_by_pid.Get(npc_id, NULL)); } gemItem *GEMSupervisor::FindItemEntity(int item_id) { - csHash<gemObject *>::Iterator iter(entities_by_ps_id.GetIterator(item_id)); - - while (iter.HasNext()) - { - gemObject *obj = iter.Next(); - gemItem *item = dynamic_cast<gemItem*>(obj); - if (item) - return item; - } - return NULL; + return items_by_uid.Get(item_id, NULL); } int GEMSupervisor::CountManagedNPCs(int superclientID) { - csHash<gemObject *>::GlobalIterator iter(entities_by_ps_id.GetIterator()); + csHash<gemObject *>::GlobalIterator iter(entities_by_eid.GetIterator()); int count_players=0; while (iter.HasNext()) @@ -382,7 +326,7 @@ void GEMSupervisor::FillNPCList(MsgEntry *msg,int superclientID) { - csHash<gemObject *>::GlobalIterator iter(entities_by_ps_id.GetIterator()); + csHash<gemObject *>::GlobalIterator iter(entities_by_eid.GetIterator()); while (iter.HasNext()) { @@ -403,7 +347,7 @@ { CPrintf(CON_NOTIFY, "Shutting down entities managed by superclient %d.\n",superclientID); - csHash<gemObject *>::GlobalIterator iter(entities_by_ps_id.GetIterator()); + csHash<gemObject *>::GlobalIterator iter(entities_by_eid.GetIterator()); count_players=0; while (iter.HasNext()) @@ -430,7 +374,7 @@ void GEMSupervisor::UpdateAllDR() { - csHash<gemObject *>::GlobalIterator iter(entities_by_ps_id.GetIterator()); + csHash<gemObject *>::GlobalIterator iter(entities_by_eid.GetIterator()); count_players=0; while (iter.HasNext()) @@ -446,9 +390,9 @@ void GEMSupervisor::UpdateAllStats() { - csHash<gemObject *>::GlobalIterator iter(entities_by_ps_id.GetIterator()); + csHash<gemObject *>::GlobalIterator iter(entities_by_eid.GetIterator()); - count_players=0; + count_players=0; // FIXME: This is zeroed out but not recounted? while (iter.HasNext()) { gemObject *obj = iter.Next(); @@ -460,7 +404,7 @@ void GEMSupervisor::GetPlayerObjects(unsigned int playerID, csArray<gemObject*> &list ) { - csHash<gemObject *>::GlobalIterator iter(entities_by_ps_id.GetIterator()); + csHash<gemObject *>::GlobalIterator iter(entities_by_eid.GetIterator()); while (iter.HasNext()) { gemObject* obj = iter.Next(); @@ -475,7 +419,7 @@ void GEMSupervisor::GetAllEntityPos(psAllEntityPosMessage& update) { - csHash<gemObject *>::GlobalIterator iter(entities_by_ps_id.GetIterator()); + csHash<gemObject *>::GlobalIterator iter(entities_by_eid.GetIterator()); update.SetLength(count_players,0); // Theoretical max of how many @@ -627,7 +571,6 @@ prox_distance_desired=DEF_PROX_DIST; prox_distance_current=DEF_PROX_DIST; gemID = 0; - } gemObject::gemObject(const char* name, @@ -637,14 +580,11 @@ iSector* room, const csVector3& pos, float rotangle, - int clientnum, - uint32 id) + int clientnum) { if (!this->cel) this->cel = GEMSupervisor::GetSingletonPtr(); - gemID = id; - this->valid = true; this->name = name; this->factname = factname; @@ -655,7 +595,7 @@ proxlist = NULL; is_alive = false; - cel->CreateEntity(this); + gemID = cel->CreateEntity(this); prox_distance_desired=DEF_PROX_DIST; prox_distance_current=DEF_PROX_DIST; @@ -1244,8 +1184,8 @@ iSector* room, const csVector3& pos, float rotangle, - int clientnum, uint32 id) - : gemObject(name,factname,filename,myInstance,room,pos,rotangle,clientnum, id) + int clientnum) + : gemObject(name,factname,filename,myInstance,room,pos,rotangle,clientnum) { //if entity is not set, object is not a success // if (entity != NULL) @@ -1456,13 +1396,13 @@ iSector* room, const csVector3& pos, float rotangle, - int clientnum,uint32 id) - : gemActiveObject(item->GetName(),factname,filename,instance,room,pos, - rotangle,clientnum,id) + int clientnum) + : gemActiveObject(item->GetName(),factname,filename,instance,room,pos,rotangle,clientnum) { itemdata=item; itemType.Format("Item(%s)",itemdata->GetItemType()); itemdata->SetGemObject( this ); + cel->AddItemEntity(this); } void gemItem::Broadcast(int clientnum, bool control ) @@ -1578,29 +1518,21 @@ // gemActionLocation //-------------------------------------------------------------------------------------- -gemActionLocation::gemActionLocation( GEMSupervisor *cel, - psActionLocation *action, - iSector *isec, - int clientnum, uint32 id ) - : gemActiveObject( action->name ) +gemActionLocation::gemActionLocation(psActionLocation *action, iSector *isec, int clientnum) + : gemActiveObject(action->name) { - if (!this->cel) - this->cel = cel; - this->yRot = 0; this->action = action; - this->gemID = id; action->SetGemObject( this ); + // action locations use the AL ID as their EID for some reason + gemID = action->id; + this->prox_distance_desired = 0.0F; this->prox_distance_current = 0.0F; visible = false; - proxlist = NULL; - is_alive = false; - - cel->CreateEntity(this); SetName(name); pcmesh = new gemMesh(psserver->GetObjectReg(), this, cel); @@ -1713,8 +1645,8 @@ iSector* room, const csVector3& pos, float rotangle, - int clientnum,uint32 id) : - gemObject(chardata->GetCharFullName(),factname,filename,myInstance,room,pos,rotangle,clientnum,id), + int clientnum) : + gemObject(chardata->GetCharFullName(),factname,filename,myInstance,room,pos,rotangle,clientnum), psChar(chardata), factions(NULL), DRcounter(0), lastDR(0), lastSentSuperclientPos(0, 0, 0), lastSentSuperclientInstance(-1), numReports(0), reportTargetId(0), isFalling(false), invincible(false), visible(true), viewAllObjects(false), meshcache(factname), movementMode(0), isAllowedToMove(true), atRest(true), pcmove(NULL), @@ -1722,6 +1654,8 @@ { playerID = chardata->GetCharacterID(); + cel->AddActorEntity(this); + // Store a safe reference to the client Client* client = psserver->GetConnections()->FindAny(clientnum); if (client) clientRef = client; @@ -3462,8 +3396,8 @@ iSector* room, const csVector3& pos, float rotangle, - int clientnum,uint32 id) - : gemActor(chardata,factname,filename,instance,room,pos,rotangle,clientnum,id) + int clientnum) + : gemActor(chardata,factname,filename,instance,room,pos,rotangle,clientnum) { npcdialog = NULL; superClientID = 0; @@ -3954,8 +3888,8 @@ iSector* room, const csVector3& pos, float rotangle, - int clientnum,uint32 id) - : gemItem(item,factname,filename,myInstance,room,pos,rotangle,clientnum,id) + int clientnum) + : gemItem(item,factname,filename,myInstance,room,pos,rotangle,clientnum) { } Modified: trunk/src/server/gem.h =================================================================== --- trunk/src/server/gem.h 2008-07-29 01:09:43 UTC (rev 1958) +++ trunk/src/server/gem.h 2008-07-29 11:11:50 UTC (rev 1959) @@ -128,7 +128,7 @@ /** Get a hash of all the current entities on the server. * @return a csHash of all the gemObjects. */ - csHash<gemObject *>& GetAllGEMS() { return entities_by_ps_id; } + csHash<gemObject *>& GetAllGEMS() { return entities_by_eid; } // Search functions /** Find an entity ID for an item. @@ -145,8 +145,10 @@ gemNPC *FindNPCEntity(int npc_id); gemItem *FindItemEntity(int item_id); - void CreateEntity(gemObject *obj); + PS_ID CreateEntity(gemObject *obj); void RemoveEntity(gemObject *which); + void AddActorEntity(gemActor *actor); + void AddItemEntity(gemItem *item); void RemoveClientFromLootables(int cnum); @@ -215,15 +217,16 @@ */ csArray<gemObject*> FindNearbyEntities (iSector* sector, const csVector3& pos, float radius, bool doInvisible = false); - +protected: /** Get the next ID for an object. * @return The next ID available that can be assigned to an object. */ PS_ID GetNextID(); + csHash<gemObject*> entities_by_eid; ///< A list of all the entities stored by EID (entity/gem ID). + csHash<gemItem*> items_by_uid; ///< A list of all the items stored by UID (psItem ID). + csHash<gemActor*> actors_by_pid; ///< A list of all the actors stored by PID (player/character ID). -protected: - csHash<gemObject *> entities_by_ps_id; ///< A list of all the entities stored by ID. int count_players; ///< Total Number of players PS_ID nextEID; ///< The next ID available for an object. @@ -241,7 +244,7 @@ public: gemObject(const char* name, const char* factname,const char* filename,INSTANCE_ID myinstance,iSector* room, - const csVector3& pos,float rotangle,int clientnum,uint32 id); + const csVector3& pos,float rotangle,int clientnum); /// This ctor is only for use in making keys for the BinaryTree gemObject(const char *name); @@ -388,7 +391,7 @@ iSector* room, const csVector3& pos, float rotangle, - int clientnum,uint32 id); + int clientnum); virtual const char* GetObjectType() { return "Active object"; } @@ -423,7 +426,7 @@ iSector* room, const csVector3& pos, float rotangle, - int clientnum,uint32 id); + int clientnum); virtual const char* GetObjectType() { return itemType.GetData(); } virtual psItem *GetItem(); @@ -467,7 +470,7 @@ iSector* room, const csVector3& pos, float rotangle, - int clientnum,uint32 id); + int clientnum); bool CanAdd(unsigned short amountToAdd, psItem *item, int slot=-1); bool AddToContainer(psItem *item,Client *fromClient, int slot=-1) { return AddToContainer(item, fromClient, slot, false); } @@ -515,7 +518,7 @@ bool visible; public: - gemActionLocation( GEMSupervisor *cel, psActionLocation *action, iSector *isec, int clientnum, uint32 id ); + gemActionLocation(psActionLocation *action, iSector *isec, int clientnum); virtual const char* GetObjectType() { return "ActionLocation"; } virtual psActionLocation *GetAction() { return action; } @@ -630,7 +633,7 @@ psLinearMovement* pcmove; gemActor(psCharacter *chardata, const char* factname,const char* filename, - unsigned int myInstance,iSector* room,const csVector3& pos,float rotangle,int clientnum,uint32 id); + unsigned int myInstance,iSector* room,const csVector3& pos,float rotangle,int clientnum); virtual ~gemActor(); @@ -861,7 +864,7 @@ public: gemNPC(psCharacter *chardata, const char* factname,const char* filename, - unsigned int myInstance,iSector* room,const csVector3& pos,float rotangle,int clientnum,uint32 id); + unsigned int myInstance,iSector* room,const csVector3& pos,float rotangle,int clientnum); virtual ~gemNPC(); @@ -929,7 +932,7 @@ public: gemPet(psCharacter *chardata, const char* factname,const char* filename,INSTANCE_ID instance,iSector* room, - const csVector3& pos,float rotangle,int clientnum,uint32 id) : gemNPC(chardata,factname,filename,instance,room,pos,rotangle,clientnum,id) + const csVector3& pos,float rotangle,int clientnum,uint32 id) : gemNPC(chardata,factname,filename,instance,room,pos,rotangle,clientnum) { this->persistanceLevel = "Temporary"; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-29 15:41:04
|
Revision: 1960 http://planeshift.svn.sourceforge.net/planeshift/?rev=1960&view=rev Author: heinchen Date: 2008-07-29 15:41:13 +0000 (Tue, 29 Jul 2008) Log Message: ----------- fix from weltall for FS#773 - [Regression Test] Icons in Maps/Sketches appear out of view Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/gui/pawsilluminationwindow.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-29 11:11:50 UTC (rev 1959) +++ trunk/docs/history.txt 2008-07-29 15:41:13 UTC (rev 1960) @@ -1,3 +1,6 @@ +*** 2008-07-29 by Andreas Heinchen +- Fix for FS#773, patch by Weltall + *** 2008-07-29 by Kenny Graunke - Fixed bugs caused by using the wrong IDs in r1908. Specifically, items in containers were failing to load, and most action locations didn't work. Modified: trunk/src/client/gui/pawsilluminationwindow.cpp =================================================================== --- trunk/src/client/gui/pawsilluminationwindow.cpp 2008-07-29 11:11:50 UTC (rev 1959) +++ trunk/src/client/gui/pawsilluminationwindow.cpp 2008-07-29 15:41:13 UTC (rev 1960) @@ -380,8 +380,8 @@ if (!strcasecmp(name,"AddText")) { - int x = (ScreenFrame().xmax + ScreenFrame().xmin)/2 - ScreenFrame().xmin; - int y = (ScreenFrame().ymax + ScreenFrame().ymin)/2 - ScreenFrame().ymin; + int x = (ScreenFrame().xmax - ScreenFrame().xmin)/2; + int y = (ScreenFrame().ymax - ScreenFrame().ymin)/2; SketchText *text = new SketchText(x,y,value,this); objlist.Push(text); } @@ -419,8 +419,8 @@ return; } - int x = (ScreenFrame().xmax + ScreenFrame().xmin)/2 - ScreenFrame().xmin; - int y = (ScreenFrame().ymax + ScreenFrame().ymin)/2 - ScreenFrame().ymin; + int x = (ScreenFrame().xmax - ScreenFrame().xmin)/2; + int y = (ScreenFrame().ymax - ScreenFrame().ymin)/2; int x2 = x + 50; int y2 = y + 50; @@ -442,8 +442,8 @@ // printf("Adding sketch icon now.\n"); - int x = (ScreenFrame().xmax + ScreenFrame().xmin)/2; - int y = (ScreenFrame().ymax + ScreenFrame().ymin)/2; + int x = (ScreenFrame().xmax - ScreenFrame().xmin)/2; + int y = (ScreenFrame().ymax - ScreenFrame().ymin)/2; SketchIcon *icon = new SketchIcon(x,y,iconList[0],this); objlist.Push(icon); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-29 15:50:16
|
Revision: 1961 http://planeshift.svn.sourceforge.net/planeshift/?rev=1961&view=rev Author: heinchen Date: 2008-07-29 15:50:23 +0000 (Tue, 29 Jul 2008) Log Message: ----------- fix from weltall for FS#2030 - FS#2030 - pawslistbox doesn't hide the scroolbar if resized (while it shows it) Modified Paths: -------------- trunk/docs/history.txt trunk/src/common/paws/pawslistbox.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-29 15:41:13 UTC (rev 1960) +++ trunk/docs/history.txt 2008-07-29 15:50:23 UTC (rev 1961) @@ -1,5 +1,5 @@ *** 2008-07-29 by Andreas Heinchen -- Fix for FS#773, patch by Weltall +- Fixed FS#773 and FS#2030, patch by Weltall *** 2008-07-29 by Kenny Graunke - Fixed bugs caused by using the wrong IDs in r1908. Specifically, items in Modified: trunk/src/common/paws/pawslistbox.cpp =================================================================== --- trunk/src/common/paws/pawslistbox.cpp 2008-07-29 15:41:13 UTC (rev 1960) +++ trunk/src/common/paws/pawslistbox.cpp 2008-07-29 15:50:23 UTC (rev 1961) @@ -630,9 +630,13 @@ break; } - if ( rows.GetSize() > numberOfRows ) - if ( scrollBar ) + if (scrollBar) + { + if (rows.GetSize() > numberOfRows) scrollBar->Show(); + else + scrollBar->Hide(); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-29 16:37:08
|
Revision: 1964 http://planeshift.svn.sourceforge.net/planeshift/?rev=1964&view=rev Author: heinchen Date: 2008-07-29 16:37:17 +0000 (Tue, 29 Jul 2008) Log Message: ----------- partiall fix from weltall for FS#1373 - FS#1373 - scroll bars never go away on most multiline widgets Modified Paths: -------------- trunk/docs/history.txt trunk/src/common/paws/pawstextbox.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-29 15:55:18 UTC (rev 1963) +++ trunk/docs/history.txt 2008-07-29 16:37:17 UTC (rev 1964) @@ -1,5 +1,5 @@ *** 2008-07-29 by Andreas Heinchen -- Fixed FS#773 and FS#2030, patch by Weltall +- Fixed FS#773 and FS#2030, partially fixed FS#1373, patches by Weltall *** 2008-07-29 by Kenny Graunke - Fixed bugs caused by using the wrong IDs in r1908. Specifically, items in Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2008-07-29 15:55:18 UTC (rev 1963) +++ trunk/src/common/paws/pawstextbox.cpp 2008-07-29 16:37:17 UTC (rev 1964) @@ -1219,7 +1219,7 @@ OrganizeText( str.GetData() ); - if ( canDrawLines > lines.GetSize() ) + if ( canDrawLines >= lines.GetSize() ) canDrawLines = lines.GetSize(); else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-30 11:23:04
|
Revision: 1966 http://planeshift.svn.sourceforge.net/planeshift/?rev=1966&view=rev Author: heinchen Date: 2008-07-30 11:23:13 +0000 (Wed, 30 Jul 2008) Log Message: ----------- partiall fix from weltall for FS#1373 - scroll bars never go away on most multiline widgets Modified Paths: -------------- trunk/docs/history.txt trunk/src/common/paws/pawstextbox.h trunk/src/common/paws/pawstextwrap.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-29 20:32:16 UTC (rev 1965) +++ trunk/docs/history.txt 2008-07-30 11:23:13 UTC (rev 1966) @@ -1,3 +1,6 @@ +*** 2008-07-30 by Andreas Heinchen +- completly fixed FS#1373, patch by weltall + *** 2008-07-29 by Andreas Heinchen - Fixed FS#773 and FS#2030, partially fixed FS#1373, patches by Weltall Modified: trunk/src/common/paws/pawstextbox.h =================================================================== --- trunk/src/common/paws/pawstextbox.h 2008-07-29 20:32:16 UTC (rev 1965) +++ trunk/src/common/paws/pawstextbox.h 2008-07-30 11:23:13 UTC (rev 1966) @@ -371,6 +371,7 @@ */ void SetText( const char* text, bool publish = true ); const char* GetText(); + void UpdateScrollBar(); virtual void SetupScrollBar(); bool OnScroll( int direction, pawsScrollBar* widget ); Modified: trunk/src/common/paws/pawstextwrap.cpp =================================================================== --- trunk/src/common/paws/pawstextwrap.cpp 2008-07-29 20:32:16 UTC (rev 1965) +++ trunk/src/common/paws/pawstextwrap.cpp 2008-07-30 11:23:13 UTC (rev 1966) @@ -66,7 +66,6 @@ // Find the line height; int dummy; GetFont()->GetMaxSize( dummy, lineHeight ); - lineHeight -=2; OnResize(); } @@ -201,8 +200,8 @@ parent->OnChange(this); } - if (cursorLine > topLine+canDrawLines) - topLine = cursorLine - canDrawLines; + if (cursorLine >= topLine+canDrawLines) + topLine = cursorLine - canDrawLines+1; else if (cursorLine < topLine) topLine = cursorLine; SetupScrollBar(); @@ -220,9 +219,24 @@ void pawsMultilineEditTextBox::OnResize() { - canDrawLines = (screenFrame.Height()-lineHeight) / lineHeight; + canDrawLines = (screenFrame.Height() / lineHeight); + UpdateScrollBar(); } +void pawsMultilineEditTextBox::UpdateScrollBar() +{ + if(!vScrollBar) return; + + float barPosition = (float)topLine; + vScrollBar->SetMaxValue((int)lineInfo.GetSize() - canDrawLines); + vScrollBar->SetCurrentValue((float)barPosition); + + if (lineInfo.GetSize() <= canDrawLines) + vScrollBar->Hide(); // turn off scrollbar + else + vScrollBar->Show(); +} + void pawsMultilineEditTextBox::SetupScrollBar() { if (!vScrollBar) @@ -237,17 +251,7 @@ AddChild( vScrollBar ); } - if (lineInfo.GetSize() < canDrawLines) - { - // turn off scrollbar - vScrollBar->Hide(); - } - else - { - vScrollBar->SetCurrentValue((float)topLine); - vScrollBar->SetMaxValue((int)lineInfo.GetSize() - canDrawLines ); - vScrollBar->Show(); - } + UpdateScrollBar(); } bool pawsMultilineEditTextBox::OnMouseDown( int button, int modifiers, int x, int y ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-30 12:29:56
|
Revision: 1968 http://planeshift.svn.sourceforge.net/planeshift/?rev=1968&view=rev Author: heinchen Date: 2008-07-30 12:30:06 +0000 (Wed, 30 Jul 2008) Log Message: ----------- fixed ownership issues in containers and inconsistencies between world and database Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/gem.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-30 11:54:55 UTC (rev 1967) +++ trunk/docs/history.txt 2008-07-30 12:30:06 UTC (rev 1968) @@ -1,4 +1,6 @@ *** 2008-07-30 by Andreas Heinchen +- Fixed inconsistency between world and database. + Fixed ownership of items moved from world container to world container. - completly fixed FS#1373, patch by weltall *** 2008-07-29 by Andreas Heinchen Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2008-07-30 11:54:55 UTC (rev 1967) +++ trunk/src/server/gem.cpp 2008-07-30 12:30:06 UTC (rev 1968) @@ -3957,7 +3957,17 @@ // If the gemContainer we are dropping the item into is not pickupable then we // guard the item placed inside. Otherwise the item becomes public. - item->SetGuardingCharacterID(item->GetOwningCharacterID()); + if (fromClient) + { + /* put the player behind the client as guard */ + item->SetGuardingCharacterID(fromClient->GetCharacterData()->characterid); + } + if (item->GetOwningCharacterID()) + { + /* item comes from a player () */ + item->SetGuardingCharacterID(item->GetOwningCharacterID()); + } + if (!GetItem()->GetIsNoPickup() && item->GetOwningCharacterID()) GetItem()->SetGuardingCharacterID(item->GetOwningCharacterID()); @@ -4035,6 +4045,9 @@ { // Split out the stack for the required amount. item = itemStack->SplitStack(stackCount); + + // Save the lowered value + itemStack->Save(false); } // Send out messages about the change in the item stack. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-30 14:49:27
|
Revision: 1970 http://planeshift.svn.sourceforge.net/planeshift/?rev=1970&view=rev Author: heinchen Date: 2008-07-30 14:49:34 +0000 (Wed, 30 Jul 2008) Log Message: ----------- fixed FS#1376 - display bug in owernership when splitting a stack in tool (furnace) Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/bulkobjects/psitem.cpp trunk/src/server/bulkobjects/psitem.h trunk/src/server/gem.cpp trunk/src/server/slotmanager.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-30 12:36:42 UTC (rev 1969) +++ trunk/docs/history.txt 2008-07-30 14:49:34 UTC (rev 1970) @@ -1,6 +1,7 @@ *** 2008-07-30 by Andreas Heinchen - Fixed inconsistency between world and database. Fixed ownership of items moved from world container to world container. + Fixed FS#1376 splitted stacks in world containers did not update the clients properly - completly fixed FS#1373, patch by weltall *** 2008-07-29 by Andreas Heinchen Modified: trunk/src/server/bulkobjects/psitem.cpp =================================================================== --- trunk/src/server/bulkobjects/psitem.cpp 2008-07-30 12:36:42 UTC (rev 1969) +++ trunk/src/server/bulkobjects/psitem.cpp 2008-07-30 14:49:34 UTC (rev 1970) @@ -48,6 +48,7 @@ //============================================================================= // Local Includes //============================================================================= +#include "client.h" #include "psitem.h" #include "pscharacter.h" #include "pssectorinfo.h" @@ -2278,6 +2279,24 @@ } } +void psItem::UpdateView(Client *fromClient, uint EntityId, bool clear) +{ + if (!fromClient) + return; + + gemActor *guardian = clear ? 0 : GEMSupervisor::GetSingleton().FindPlayerEntity(GetGuardingCharacterID()); + psViewItemUpdate mesg(fromClient->GetClientNum(), + EntityId, + GetLocInParent(), + clear, + GetName(), + GetImageName(), + GetStackCount(), + guardian ? guardian->GetEntityID() : 0); + + mesg.Multicast(fromClient->GetActor()->GetMulticastClients(),0,5); +} + void psItem::SetGemObject(gemItem *object) { // Unregister previous callbacks if the current gItem is not NULL Modified: trunk/src/server/bulkobjects/psitem.h =================================================================== --- trunk/src/server/bulkobjects/psitem.h 2008-07-30 12:36:42 UTC (rev 1969) +++ trunk/src/server/bulkobjects/psitem.h 2008-07-30 14:49:34 UTC (rev 1970) @@ -42,6 +42,7 @@ //============================================================================= // Local Includes //============================================================================= +#include "client.h" #include "psskills.h" #include "psitemstats.h" #include "deleteobjcallback.h" @@ -214,6 +215,9 @@ /// Handles deleted gem objects. virtual void DeleteObjectCallback(iDeleteNotificationObject * object); + + //inform clients on view updates + void UpdateView(Client *fromClient, uint EntityId, bool clear); private: Modified: trunk/src/server/gem.cpp =================================================================== --- trunk/src/server/gem.cpp 2008-07-30 12:36:42 UTC (rev 1969) +++ trunk/src/server/gem.cpp 2008-07-30 14:49:34 UTC (rev 1970) @@ -3977,22 +3977,7 @@ item->Save(false); itemlist.PushSmart(item); - if (fromClient) - { - gemActor *guardian = GEMSupervisor::GetSingleton().FindPlayerEntity(item->GetGuardingCharacterID()); - - // Update client(s) - psViewItemUpdate mesg(fromClient->GetClientNum(), - GetEntityID(), - slot, - false, - item->GetName(), - item->GetImageName(), - item->GetStackCount(), - guardian ? guardian->GetEntityID() : 0); - - mesg.Multicast(fromClient->GetActor()->GetMulticastClients(),0,5); - } + item->UpdateView(fromClient, GetEntityID(), false); return true; } @@ -4001,25 +3986,7 @@ // printf("Removing %s from container now.\n", item->GetName() ); if (itemlist.Delete(item)) { - uint32_t slot = item->GetLocInParent(); - - if (fromClient) - { - gemActor *guardian = GEMSupervisor::GetSingleton().FindPlayerEntity(item->GetGuardingCharacterID()); - - // printf("Multicasting removal update to nearby clients of %s.\n\n", fromClient->GetName() ); - // Update client(s) - psViewItemUpdate mesg(fromClient->GetClientNum(), - GetEntityID(), - slot, - true, - item->GetName(), - item->GetImageName(), - item->GetStackCount(), - guardian ? guardian->GetEntityID() : 0); - - mesg.Multicast(fromClient->GetActor()->GetMulticastClients(),0,5); - } + item->UpdateView(fromClient, GetEntityID(), true); return true; } else @@ -4050,25 +4017,8 @@ itemStack->Save(false); } - // Send out messages about the change in the item stack. - uint32_t slot = itemStack->GetLocInParent(); - - if (fromClient) - { - // printf("Multicasting removal update to nearby clients of %s.\n\n", fromClient->GetName() ); - // Update client(s) - psViewItemUpdate mesg(fromClient->GetClientNum(), - GetEntityID(), - slot, - clear, - itemStack->GetName(), - itemStack->GetImageName(), - itemStack->GetStackCount(), - 0); - - mesg.Multicast(fromClient->GetActor()->GetMulticastClients(),0,5); - } - + // Send out messages about the change in the item stack. + itemStack->UpdateView(fromClient, GetEntityID(), clear); return item; } Modified: trunk/src/server/slotmanager.cpp =================================================================== --- trunk/src/server/slotmanager.cpp 2008-07-30 12:36:42 UTC (rev 1969) +++ trunk/src/server/slotmanager.cpp 2008-07-30 14:49:34 UTC (rev 1970) @@ -314,16 +314,8 @@ itemProposed->Save(false); // Update client(s) - psViewItemUpdate mesg(fromClient->GetClientNum(), - worldContainer->GetEntityID(), - msg.fromSlot, - true, - itemProposed->GetName(), - itemProposed->GetImageName(), - itemProposed->GetStackCount(), - 0); + itemProposed->UpdateView(fromClient, worldContainer->GetEntityID(), true); - mesg.Multicast(fromClient->GetActor()->GetMulticastClients(),0,5); // psserver->GetCharManager()->SendContainerContents(fromClient, parentItem, containerEntityID); break; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-30 18:57:34
|
Revision: 1971 http://planeshift.svn.sourceforge.net/planeshift/?rev=1971&view=rev Author: heinchen Date: 2008-07-30 18:57:39 +0000 (Wed, 30 Jul 2008) Log Message: ----------- fixed FS#1373 - scroll bars didn't not go away when editing a short schort cut after a long one Modified Paths: -------------- trunk/docs/history.txt trunk/src/common/paws/pawstextbox.cpp trunk/src/common/paws/pawstextwrap.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-30 14:49:34 UTC (rev 1970) +++ trunk/docs/history.txt 2008-07-30 18:57:39 UTC (rev 1971) @@ -2,7 +2,7 @@ - Fixed inconsistency between world and database. Fixed ownership of items moved from world container to world container. Fixed FS#1376 splitted stacks in world containers did not update the clients properly -- completly fixed FS#1373, patch by weltall +- several fixes for FS#1373, patches by weltall *** 2008-07-29 by Andreas Heinchen - Fixed FS#773 and FS#2030, partially fixed FS#1373, patches by Weltall Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2008-07-30 14:49:34 UTC (rev 1970) +++ trunk/src/common/paws/pawstextbox.cpp 2008-07-30 18:57:39 UTC (rev 1971) @@ -436,7 +436,7 @@ { if ( x < adjusted.GetSize() ) { - int oldSize = GetFont()->GetSize(); + //int oldSize = GetFont()->GetSize(); if(adjusted[x]->size) { //ChangeFontSize(adjusted[x]->size); @@ -610,7 +610,7 @@ int maxWidth; int maxHeight; - int oldSize = GetFont()->GetSize(); + //int oldSize = GetFont()->GetSize(); if(size) { //ChangeFontSize(size); @@ -1220,7 +1220,14 @@ OrganizeText( str.GetData() ); if ( canDrawLines >= lines.GetSize() ) + { canDrawLines = lines.GetSize(); + if(scrollBar) //if there is a scrollbar we must setup it correctly else we will scroll in the void + { + scrollBar->SetMaxValue(0); + scrollBar->SetCurrentValue(0); + } + } else { usingScrollBar = true; Modified: trunk/src/common/paws/pawstextwrap.cpp =================================================================== --- trunk/src/common/paws/pawstextwrap.cpp 2008-07-30 14:49:34 UTC (rev 1970) +++ trunk/src/common/paws/pawstextwrap.cpp 2008-07-30 18:57:39 UTC (rev 1971) @@ -227,14 +227,27 @@ { if(!vScrollBar) return; - float barPosition = (float)topLine; - vScrollBar->SetMaxValue((int)lineInfo.GetSize() - canDrawLines); - vScrollBar->SetCurrentValue((float)barPosition); + float barMaxValue; //holds the maximum value of the scrollbar + float barPosition; //holds the current position of the scrollbar - if (lineInfo.GetSize() <= canDrawLines) - vScrollBar->Hide(); // turn off scrollbar - else - vScrollBar->Show(); + + + if (lineInfo.GetSize() <= canDrawLines) //can all the lines stay on screen? + { + vScrollBar->Hide(); //... yes they can then hide the scrollbar and... + barMaxValue = 0; //set the scrollbar max value and position to zero as we have nothing to scroll + barPosition = 0; + } + else //no they can't so... + { + vScrollBar->Show();//... show the scrollbar and... + barMaxValue = (int)lineInfo.GetSize() - canDrawLines; //... set it's max values and position + barPosition = (float)topLine; + } + + //set new values to the scrollbar + vScrollBar->SetMaxValue(barMaxValue); + vScrollBar->SetCurrentValue(barPosition); } void pawsMultilineEditTextBox::SetupScrollBar() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-30 20:07:30
|
Revision: 1972 http://planeshift.svn.sourceforge.net/planeshift/?rev=1972&view=rev Author: heinchen Date: 2008-07-30 20:07:36 +0000 (Wed, 30 Jul 2008) Log Message: ----------- fixed FS#1283 - issues with sketches/maps [icons as pointer, map lines and icon origin] + dropping non visible sketch elements Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/gui/pawsilluminationwindow.cpp trunk/src/client/gui/pawsilluminationwindow.h Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-30 18:57:39 UTC (rev 1971) +++ trunk/docs/history.txt 2008-07-30 20:07:36 UTC (rev 1972) @@ -3,6 +3,8 @@ Fixed ownership of items moved from world container to world container. Fixed FS#1376 splitted stacks in world containers did not update the clients properly - several fixes for FS#1373, patches by weltall +- fix for FS#1283, patch by weltall, refactoring from me + additionally dropping invisible sketch elements *** 2008-07-29 by Andreas Heinchen - Fixed FS#773 and FS#2030, partially fixed FS#1373, patches by Weltall Modified: trunk/src/client/gui/pawsilluminationwindow.cpp =================================================================== --- trunk/src/client/gui/pawsilluminationwindow.cpp 2008-07-30 18:57:39 UTC (rev 1971) +++ trunk/src/client/gui/pawsilluminationwindow.cpp 2008-07-30 20:07:36 UTC (rev 1972) @@ -150,28 +150,33 @@ Show(); } -void pawsSketchWindow::Hide() +csString pawsSketchWindow::toXML(void ) { - if (dirty) - { - csString xml; + //generates the xml document from the objects currently displayed in the sketch + csString xml; - xml = "<pages><page "; - xml.AppendFmt("l=\"%d\" t=\"%d\" w=\"%d\" h=\"%d\">", - GetLogicalWidth(screenFrame.xmin), - GetLogicalHeight(screenFrame.ymin), - GetLogicalWidth(screenFrame.xmax-screenFrame.xmin), - GetLogicalHeight(screenFrame.ymax-screenFrame.ymin)); + xml = "<pages><page "; + xml.AppendFmt("l=\"%d\" t=\"%d\" w=\"%d\" h=\"%d\">", GetLogicalWidth( + screenFrame.xmin), GetLogicalHeight(screenFrame.ymin), + GetLogicalWidth(screenFrame.xmax - screenFrame.xmin), + GetLogicalHeight(screenFrame.ymax - screenFrame.ymin)); - // Add background and size stuff here - - for (size_t i=0; i<objlist.GetSize(); i++) + // Add background and size stuff here + for (size_t i = 0; i < objlist.GetSize(); i++) + if (objlist[i]->x <= screenFrame.xmax - screenFrame.xmin + && objlist[i]->y <= screenFrame.ymax - screenFrame.ymin) objlist[i]->WriteXml(xml); - xml += "</page></pages>"; + xml += "</page></pages>"; + return xml; +} +void pawsSketchWindow::Hide() +{ + if (dirty) + { + csString xml = toXML(); // printf("Saving sketch as: %s\n",xml.GetDataSafe()); - psSketchMessage sketch(0, currentItemID,0,"", xml, true, sketchName); sketch.SendMessage(); } @@ -190,7 +195,14 @@ } void pawsSketchWindow::DrawSketch() { - for (size_t i=0; i<objlist.GetSize(); i++) + if (selectedIndex != SIZET_NOT_FOUND && IsMouseDown()) + { + psPoint pos = PawsManager::GetSingleton().GetMouse()->GetPosition(); + objlist[selectedIndex]->UpdatePosition(GetLogicalWidth(pos.x + - ScreenFrame().xmin), GetLogicalHeight(pos.y + - ScreenFrame().ymin)); + } + for (size_t i = 0; i < objlist.GetSize(); i++) objlist[i]->Draw(); } @@ -500,19 +512,7 @@ void pawsSketchWindow::SaveSketch() { - csString xml; - //generates the xml document from the objects currently displayed in the sketch - xml = "<pages><page "; - xml.AppendFmt("l=\"%d\" t=\"%d\" w=\"%d\" h=\"%d\">", - GetLogicalWidth(screenFrame.xmin), - GetLogicalHeight(screenFrame.ymin), - GetLogicalWidth(screenFrame.xmax-screenFrame.xmin), - GetLogicalHeight(screenFrame.ymax-screenFrame.ymin)); - - for (size_t i=0; i<objlist.GetSize(); i++) - objlist[i]->WriteXml(xml); - - xml += "</page></pages>"; + csString xml = toXML(); csRef<iVFS> vfs = psengine->GetVFS(); unsigned int tempNumber = 0; //searchs for a free sketch slot in the user directory and write in it @@ -837,7 +837,7 @@ void pawsSketchWindow::SketchText::Draw() { - if (!selected || frame > 15) + if (parent->IsMouseDown() || !selected || frame > 15) { parent->DrawWidgetText(str, parent->GetActualWidth(x)+parent->ScreenFrame().xmin, @@ -872,7 +872,7 @@ pts.GetWordNumber(4,num); y2 = atoi(num.GetDataSafe()); - printf("Line %d,%d to %d, %d\n",x,y,x2,y2); + //printf("Line %d,%d to %d, %d\n",x,y,x2,y2); this->parent = parent; return true; @@ -898,7 +898,7 @@ parent->GetActualHeight(y2)+parent->ScreenFrame().ymin, black ); - if (!selected || frame > 15) + if (parent->IsMouseDown() || !selected || frame > 15) { parent->DrawBlackBox(parent->GetActualWidth(x)+parent->ScreenFrame().xmin-3, parent->GetActualHeight(y)+parent->ScreenFrame().ymin-3); @@ -932,8 +932,8 @@ abs(mouseY-y2) < 3) { dragMode = 2; - offsetX = mouseX - x; - offsetY = mouseY - y; + offsetX = mouseX - x2; + offsetY = mouseY - y2; return true; } @@ -966,10 +966,11 @@ _x -= offsetX; // This backs off the cursor from where it was _y -= offsetY; + + //if we are taking the second point we must check it's position + dx = _x - (dragMode == 2 ? x2 : x); + dy = _y - (dragMode == 2 ? y2 : y); - dx = _x - x; - dy = _y - y; - switch (dragMode) { case 0: @@ -1015,8 +1016,6 @@ } break; } - offsetX = 0; - offsetY = 0; } void pawsSketchWindow::SketchIcon::UpdatePosition (int _x, int _y){ Modified: trunk/src/client/gui/pawsilluminationwindow.h =================================================================== --- trunk/src/client/gui/pawsilluminationwindow.h 2008-07-30 18:57:39 UTC (rev 1971) +++ trunk/src/client/gui/pawsilluminationwindow.h 2008-07-30 20:07:36 UTC (rev 1972) @@ -141,6 +141,9 @@ void SaveSketch(); void LoadSketch(); bool isBadChar(char c); + + csString toXML(); + csString filenameSafe(const csString &original); csString sketchName; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-31 13:39:47
|
Revision: 1974 http://planeshift.svn.sourceforge.net/planeshift/?rev=1974&view=rev Author: heinchen Date: 2008-07-31 13:39:53 +0000 (Thu, 31 Jul 2008) Log Message: ----------- fixed FS#426 - stamina drain on map load Modified Paths: -------------- trunk/docs/history.txt trunk/src/client/pscelclient.cpp trunk/src/client/pscelclient.h trunk/src/client/psclientdr.h trunk/src/client/zonehandler.cpp trunk/src/client/zonehandler.h Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-30 20:55:44 UTC (rev 1973) +++ trunk/docs/history.txt 2008-07-31 13:39:53 UTC (rev 1974) @@ -1,3 +1,6 @@ +*** 2008-07-31 by Andreas Heinchen +- Fixed FS#426 - stamina drain on map load + *** 2008-07-30 by Andreas Heinchen - Fixed inconsistency between world and database. Fixed ownership of items moved from world container to world container. Modified: trunk/src/client/pscelclient.cpp =================================================================== --- trunk/src/client/pscelclient.cpp 2008-07-30 20:55:44 UTC (rev 1973) +++ trunk/src/client/pscelclient.cpp 2008-07-31 13:39:53 UTC (rev 1974) @@ -1537,6 +1537,16 @@ linmove->GetDRData(on_ground,speed,pos,yrot,sector,vel,worldVel,ang_vel); + ZoneHandler* zonehandler = cel->GetZoneHandler(); + if (zonehandler && zonehandler->IsMapLoadNeeded()) + { + // disable movement to stop stamina drain while map is loading + on_ground = true; + speed = 0; + vel = 0; + ang_vel = 0; + } + // Hack to guarantee out of order packet detection -- KWF //if (DRcounter%20 == 0) //{ Modified: trunk/src/client/pscelclient.h =================================================================== --- trunk/src/client/pscelclient.h 2008-07-30 20:55:44 UTC (rev 1973) +++ trunk/src/client/pscelclient.h 2008-07-31 13:39:53 UTC (rev 1974) @@ -159,6 +159,8 @@ psShadowManager * GetShadowManager() { return shadowManager; } GEMClientActor* GetMainPlayer() { return local_player; } + + ZoneHandler* GetZoneHandler() { return zonehandler; } /* Check if the item has an effect attached to it and process it if so. */ void HandleItemEffect( const char* factName, csRef<iMeshWrapper> mw, bool onGround = true, const char* slot = 0, Modified: trunk/src/client/psclientdr.h =================================================================== --- trunk/src/client/psclientdr.h 2008-07-30 20:55:44 UTC (rev 1973) +++ trunk/src/client/psclientdr.h 2008-07-31 13:39:53 UTC (rev 1974) @@ -36,7 +36,6 @@ class psCelClient; class MsgHandler; -class ZoneHandler; class MsgEntry; class pawsGroupWindow; class pawsPetStatWindow; @@ -70,7 +69,6 @@ bool gotStrings; psCelClient* celclient; - ZoneHandler * zonehandler; csRef<MsgHandler> msghandler; csTicks lastupdate; Modified: trunk/src/client/zonehandler.cpp =================================================================== --- trunk/src/client/zonehandler.cpp 2008-07-30 20:55:44 UTC (rev 1973) +++ trunk/src/client/zonehandler.cpp 2008-07-31 13:39:53 UTC (rev 1974) @@ -53,6 +53,8 @@ #include "iclient/isoundmngr.h" +#include "psclientdr.h" + //============================================================================= // Local Includes //============================================================================= @@ -182,7 +184,7 @@ Notify3(LOG_LOAD, "Crossed from sector %s to sector %s.", msg.oldSector.GetData(), msg.newSector.GetData() ); - if (needsToLoadMaps) + if (IsMapLoadNeeded()) { Warning2(LOG_LOAD, "Still loading maps, ignoring crossing to sector %s.", msg.newSector.GetData()); return; @@ -202,7 +204,7 @@ if (world->NeedsLoading(zone->transitional)) { - needsToLoadMaps = true; + SetMapLoadNeeded(true); sectorToLoad = msg.newSector; haveNewPos = true; newPos = msg.pos; @@ -229,7 +231,7 @@ if(cam && !cam->GetDistanceCfg().adaptive) cam->UseFixedDistanceClipping(cam->GetFixedDistClip()); - if(!needsToLoadMaps) + if(!IsMapLoadNeeded()) psengine->GetModeHandler()->DoneLoading(msg.newSector); } @@ -256,14 +258,24 @@ loadProgressBar->Completed(); } +void ZoneHandler::SetMapLoadNeeded(bool needed) +{ + needsToLoadMaps = needed; + //inform server about status change + psClientDR* clientDr = celclient->GetClientDR(); + if (clientDr) + clientDr->CheckDeadReckoningUpdate(); +} + void ZoneHandler::OnDrawingFinished() { - if (needsToLoadMaps) + if (IsMapLoadNeeded()) { if(ExecuteFlaggedRegions(sectorToLoad)) { - needsToLoadMaps = false; + SetMapLoadNeeded(false); + psengine->SetLoadedMap(true); psengine->GetModeHandler()->FinishLightFade(); // make sure new map gets relit for time of day @@ -341,7 +353,7 @@ void ZoneHandler::LoadZone(const char* sector) { sectorToLoad = sector; - needsToLoadMaps = true; + SetMapLoadNeeded(true); FlagRegions( FindZone(sectorToLoad) ); } Modified: trunk/src/client/zonehandler.h =================================================================== --- trunk/src/client/zonehandler.h 2008-07-30 20:55:44 UTC (rev 1973) +++ trunk/src/client/zonehandler.h 2008-07-31 13:39:53 UTC (rev 1974) @@ -105,6 +105,9 @@ void SetLoadAllMaps(bool v) { loadAllMaps = v; } void SetKeepMapsLoaded(bool v) { keepMapsLoaded = v; } + bool IsMapLoadNeeded(void) { return needsToLoadMaps; } + void SetMapLoadNeeded(bool needed); + protected: csHash<ZoneLoadInfo *, const char*> zonelist; csArray<csString> alllist; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-07-31 14:00:37
|
Revision: 1977 http://planeshift.svn.sourceforge.net/planeshift/?rev=1977&view=rev Author: heinchen Date: 2008-07-31 14:00:43 +0000 (Thu, 31 Jul 2008) Log Message: ----------- fix for FS#1373 - check if text is too large Modified Paths: -------------- trunk/docs/history.txt trunk/src/common/paws/pawstextbox.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-31 13:53:23 UTC (rev 1976) +++ trunk/docs/history.txt 2008-07-31 14:00:43 UTC (rev 1977) @@ -1,5 +1,6 @@ *** 2008-07-31 by Andreas Heinchen - Fixed FS#426 - stamina drain on map load +- another patch for FS#1373 from weltall *** 2008-07-30 by Andreas Heinchen - Fixed inconsistency between world and database. Modified: trunk/src/common/paws/pawstextbox.cpp =================================================================== --- trunk/src/common/paws/pawstextbox.cpp 2008-07-31 13:53:23 UTC (rev 1976) +++ trunk/src/common/paws/pawstextbox.cpp 2008-07-31 14:00:43 UTC (rev 1977) @@ -407,7 +407,7 @@ if (scrollBar) { - scrollBar->SetMaxValue( (float)(adjusted.GetSize()-maxLines) ); + scrollBar->SetMaxValue( maxLines > adjusted.GetSize() ? 0 : (float)(adjusted.GetSize()-maxLines) ); scrollBar->SetCurrentValue( (float)topLine ); if ( maxLines < adjusted.GetSize() ) @@ -554,7 +554,7 @@ } - scrollBar->SetMaxValue( (float)(adjusted.GetSize()-maxLines) ); + scrollBar->SetMaxValue( maxLines > adjusted.GetSize() ? 0 : (float)(adjusted.GetSize()-maxLines) ); topLine = (int)adjusted.GetSize() - (int)maxLines; if ( topLine < 0 ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-08-01 02:06:42
|
Revision: 1978 http://planeshift.svn.sourceforge.net/planeshift/?rev=1978&view=rev Author: heinchen Date: 2008-08-01 02:06:50 +0000 (Fri, 01 Aug 2008) Log Message: ----------- refactoring of network code to fix mem leaks Modified Paths: -------------- trunk/docs/history.txt trunk/src/common/net/connection.cpp trunk/src/common/net/netbase.cpp trunk/src/common/net/netbase.h trunk/src/common/net/netpacket.cpp trunk/src/common/net/netpacket.h trunk/src/server/netmanager.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-07-31 14:00:43 UTC (rev 1977) +++ trunk/docs/history.txt 2008-08-01 02:06:50 UTC (rev 1978) @@ -1,6 +1,7 @@ *** 2008-07-31 by Andreas Heinchen - Fixed FS#426 - stamina drain on map load - another patch for FS#1373 from weltall +- refactored heo netword code to fix leaks and other memory issues *** 2008-07-30 by Andreas Heinchen - Fixed inconsistency between world and database. Modified: trunk/src/common/net/connection.cpp =================================================================== --- trunk/src/common/net/connection.cpp 2008-07-31 14:00:43 UTC (rev 1977) +++ trunk/src/common/net/connection.cpp 2008-08-01 02:06:50 UTC (rev 1978) @@ -129,18 +129,9 @@ } // Clear awaitingack queue - csHash<psNetPacketEntry*, PacketKey>::GlobalIterator it (awaitingack.GetIterator()); - csArray<psNetPacketEntry *> pkts; - psNetPacketEntry *next =NULL; - while (it.HasNext()) - { - next = it.Next(); - pkts.Push(next); - } + csHash<csRef<psNetPacketEntry>, PacketKey>::GlobalIterator it (awaitingack.GetIterator()); - for(size_t i = 0;i < pkts.GetSize(); i++) - delete pkts.Get(i); - + // with proper refcounting this should kill all members of the hash awaitingack.Empty(); } Modified: trunk/src/common/net/netbase.cpp =================================================================== --- trunk/src/common/net/netbase.cpp 2008-07-31 14:00:43 UTC (rev 1977) +++ trunk/src/common/net/netbase.cpp 2008-08-01 02:06:50 UTC (rev 1978) @@ -238,13 +238,14 @@ } //Create new net packet entry and transfere overship of bufpacket to pkt. - psNetPacketEntry* pkt = new psNetPacketEntry( bufpacket, - connection ? connection->clientnum : 0, packetlen); + csRef<psNetPacketEntry> pkt; + pkt.AttachNew(new psNetPacketEntry( bufpacket, + connection ? connection->clientnum : 0, packetlen)); // ACK packets can get eaten by HandleAck if (HandleAck(pkt, connection, &addr)) { - delete pkt; + // pkt should be unref'd here return true; } @@ -269,29 +270,17 @@ * Now either send this packet to BuildMessage, or loop through * subpackets if they are merged. */ - psNetPacketEntry *splitpacket= pkt; + csRef<psNetPacketEntry> splitpacket = pkt; psNetPacket *packetdata = NULL; do { splitpacket = pkt->GetNextPacket(packetdata); if (splitpacket) - { - if (!BuildMessage(splitpacket, connection, &addr)) - { - // if BuildMessage didn't store it we should delete it now - delete splitpacket; - } - } + BuildMessage(splitpacket, connection, &addr); + // if BuildMessage didn't store it, splitpacket should be unref'd here } while (packetdata); - - /** - * If we split apart a multipacket packet above, remove the merged one - * now, because the loop above doesn't do it in this case - */ - if (splitpacket != pkt) - delete pkt; - + // merged packet pkt should be unref'd return true; } @@ -307,7 +296,7 @@ } -bool NetBase::HandleAck(psNetPacketEntry *pkt, Connection* connection, +bool NetBase::HandleAck(csRef<psNetPacketEntry> pkt, Connection* connection, LPSOCKADDR_IN addr) { psNetPacket* packet = pkt->packet; @@ -332,10 +321,10 @@ connection->pcknumin++; } - psNetPacketEntry * ack = NULL; + csRef<psNetPacketEntry> ack; // The hash only keys on the clientnum and pktid so we need to go looking for the offset - csArray<psNetPacketEntry *> acks = awaitingack.GetAll(PacketKey(pkt->clientnum, pkt->packet->pktid)); + csArray<csRef<psNetPacketEntry> > acks = awaitingack.GetAll(PacketKey(pkt->clientnum, pkt->packet->pktid)); for(size_t i = 0;i < acks.GetSize(); i++) { if(acks[i]->packet->offset == pkt->packet->offset) @@ -359,10 +348,7 @@ Debug2(LOG_NET,0,"No packet in ack queue :%d\n", ack->packet->pktid); #endif } - else - { - delete ack; - } + // else ack should be unref'd here } else // if not found, it is probably a resent ACK which is redundant so do nothing { @@ -382,23 +368,23 @@ if (connection) { - psNetPacketEntry *ack = new psNetPacketEntry(PRIORITY_LOW, - pkt->clientnum, - pkt->packet->pktid, - pkt->packet->offset, - pkt->packet->msgsize, - PKTSIZE_ACK,(char *)NULL); + csRef<psNetPacketEntry> ack; + ack.AttachNew(new psNetPacketEntry(PRIORITY_LOW, + pkt->clientnum, + pkt->packet->pktid, + pkt->packet->offset, + pkt->packet->msgsize, + PKTSIZE_ACK,(char *)NULL)); SendFinalPacket(ack, addr); - delete ack; - + // ack should be unre'd here } } return false; } -bool NetBase::CheckDoublePackets(Connection* connection, psNetPacketEntry* pkt) +bool NetBase::CheckDoublePackets(Connection* connection, csRef<psNetPacketEntry> pkt) { int i; @@ -416,9 +402,9 @@ void NetBase::CheckResendPkts() { - csHash<psNetPacketEntry *, PacketKey>::GlobalIterator it(awaitingack.GetIterator()); - psNetPacketEntry *pkt = NULL; - csArray<psNetPacketEntry *> pkts; + csHash<csRef<psNetPacketEntry> , PacketKey>::GlobalIterator it(awaitingack.GetIterator()); + csRef<psNetPacketEntry> pkt; + csArray<csRef<psNetPacketEntry> > pkts; csTicks currenttime = csGetTicks(); @@ -448,8 +434,6 @@ Debug2(LOG_NET,0,"No packet in ack queue :%d\n", pkt->packet->pktid); #endif } - else - pkt->DecRef(); } } if(pkts.GetSize() > 0) @@ -520,7 +504,7 @@ return true; } -bool NetBase::SendSinglePacket(psNetPacketEntry* pkt) +bool NetBase::SendSinglePacket(csRef<psNetPacketEntry> pkt) { if (!SendFinalPacket (pkt)) { @@ -540,15 +524,12 @@ pkt->packet->pktid, pkt->clientnum); #endif awaitingack.Put(PacketKey(pkt->clientnum, pkt->packet->pktid), pkt); - // queue holds ref now -> don't delete pkt - pkt->IncRef(); - } return true; } -bool NetBase::SendFinalPacket(psNetPacketEntry *pkt) +bool NetBase::SendFinalPacket(csRef<psNetPacketEntry> pkt) { Connection* connection = GetConnByNum(pkt->clientnum); if (!connection) @@ -568,7 +549,7 @@ } -bool NetBase::SendFinalPacket(psNetPacketEntry *pkt, LPSOCKADDR_IN addr) +bool NetBase::SendFinalPacket(csRef<psNetPacketEntry> pkt, LPSOCKADDR_IN addr) { // send packet... #ifdef PACKETDEBUG @@ -977,12 +958,12 @@ void NetBase::CheckFragmentTimeouts(void) { - psNetPacketEntry *pkt = NULL; + csRef<psNetPacketEntry> pkt; // A set of packet ids that should NOT be discarded csSet<unsigned> newids; - psNetPacketEntry *oldpackets[10]; + csRef<psNetPacketEntry> oldpackets[10]; int count=0,index=0; csTicks current = csGetTicks(); @@ -993,7 +974,7 @@ return; // Iterate through all packets in the list searching for old packets - csHash<psNetPacketEntry *, PacketKey>::GlobalIterator it(packets.GetIterator()); + csHash<csRef<psNetPacketEntry> , PacketKey>::GlobalIterator it(packets.GetIterator()); while(it.HasNext()) { pkt = it.Next(); @@ -1021,13 +1002,16 @@ /* Drop refcount until the packet is removed from the list. * If we don't do this all at once we'll do this again the very next check since the time wont be altered. */ - while (packets.Delete(PacketKey(oldpackets[index]->clientnum, oldpackets[index]->packet->pktid), oldpackets[index])); - delete oldpackets[index]; + while (packets.Delete(PacketKey(oldpackets[index]->clientnum, oldpackets[index]->packet->pktid), oldpackets[index])) + { + // all oldpackets should be reffed only by the oldpackets array + // previous implementation deleted oldpüackets several times + } } } -bool NetBase::BuildMessage(psNetPacketEntry* pkt, Connection* &connection, +bool NetBase::BuildMessage(csRef<psNetPacketEntry> pkt, Connection* &connection, LPSOCKADDR_IN addr) { if (connection) @@ -1086,8 +1070,8 @@ csPtr<MsgEntry> NetBase::CheckCompleteMessage(uint32_t client, uint32_t id) { - csArray<psNetPacketEntry *> pkts; - psNetPacketEntry *pkt; + csArray<csRef<psNetPacketEntry> > pkts; + csRef<psNetPacketEntry> pkt; // This search is FAST, and without the first packet, you can't build the message. pkts = packets.GetAll(PacketKey(client, id)); @@ -1167,9 +1151,8 @@ offset+=pkt->packet->pktsize; // We don't care how many times it's in the queue, there's a mistake if it's over 1. Let's fix it now. - packets.Delete(PacketKey(client, id), pkt); - // And delete the packet entry object - delete pkt; + packets.Delete(PacketKey(client, id), pkt); + // pkt should be unref'd here } /* If the search offset didnt finish at the end of the packet, we have gaps, not all pieces were deleted, * someone is trying to play games, and we should ignore the message, and @@ -1211,7 +1194,7 @@ } void NetBase::HandleCompletedMessage(MsgEntry *me, Connection* &connection, - LPSOCKADDR_IN addr,psNetPacketEntry* pkt) + LPSOCKADDR_IN addr,csRef<psNetPacketEntry> pkt) { profs->AddReceivedMsg(me); Modified: trunk/src/common/net/netbase.h =================================================================== --- trunk/src/common/net/netbase.h 2008-07-31 14:00:43 UTC (rev 1977) +++ trunk/src/common/net/netbase.h 2008-08-01 02:06:50 UTC (rev 1978) @@ -432,7 +432,7 @@ * This takes incoming packets and examines them for priority. * If pkt is ACK, it finds the awaiting ack pkt and removes it. */ - bool HandleAck(psNetPacketEntry* pkt, Connection* connection, LPSOCKADDR_IN addr); + bool HandleAck(csRef<psNetPacketEntry> pkt, Connection* connection, LPSOCKADDR_IN addr); /** * This cycles through set of pkts awaiting ack and resends old ones. @@ -445,7 +445,7 @@ * This takes incoming packets and rebuilds psMessages from them. If/when a * complete message is reassembled, it calls HandleCompletedMessage(). */ - bool BuildMessage(psNetPacketEntry* pkt,Connection* &connection,LPSOCKADDR_IN addr); + bool BuildMessage(csRef<psNetPacketEntry> pkt,Connection* &connection,LPSOCKADDR_IN addr); /** * This checks the list of packets waiting to be assembled into complete messages. @@ -470,12 +470,12 @@ void HandleCompletedMessage(MsgEntry *me, Connection* &connection, LPSOCKADDR_IN addr, - psNetPacketEntry* pkt); + csRef<psNetPacketEntry> pkt); /** * This tries to drop packets that received doubled */ - bool CheckDoublePackets (Connection* connection, psNetPacketEntry* pkt); + bool CheckDoublePackets (Connection* connection, csRef<psNetPacketEntry> pkt); /** @@ -487,17 +487,17 @@ /** * This does the sending and puts the packet in "awaiting ack" if necessary. */ - bool SendSinglePacket(psNetPacketEntry* pkt); + bool SendSinglePacket(csRef<psNetPacketEntry> pkt); /** * Send packet to the clientnum given by clientnum in psNetPacketEntry */ - bool SendFinalPacket(psNetPacketEntry* pkt); + bool SendFinalPacket(csRef<psNetPacketEntry> pkt); /** * This only sends out a packet */ - bool SendFinalPacket(psNetPacketEntry* pkt, LPSOCKADDR_IN addr); + bool SendFinalPacket(csRef<psNetPacketEntry> pkt, LPSOCKADDR_IN addr); /** Outgoing message queue */ csRef<NetPacketQueueRefCount> NetworkQueue; @@ -509,7 +509,7 @@ csArray<MsgQueue*> inqueues; /** Packets Awaiting Ack pool */ - csHash<psNetPacketEntry *, PacketKey> awaitingack; + csHash<csRef<psNetPacketEntry>, PacketKey> awaitingack; /** System Socket lib initialized? */ static int socklibrefcount; @@ -546,7 +546,7 @@ SOCKET pipe_fd[2]; /** tree holding the outgoing packets */ - csHash<psNetPacketEntry *, PacketKey> packets; + csHash<csRef<psNetPacketEntry> , PacketKey> packets; /** for generating random values (unfortunately the msvc rand() function * is not good at all Modified: trunk/src/common/net/netpacket.cpp =================================================================== --- trunk/src/common/net/netpacket.cpp 2008-07-31 14:00:43 UTC (rev 1977) +++ trunk/src/common/net/netpacket.cpp 2008-08-01 02:06:50 UTC (rev 1978) @@ -75,7 +75,7 @@ cs_free(packet); } -bool psNetPacketEntry::Append(psNetPacketEntry *next) +bool psNetPacketEntry::Append(csRef<psNetPacketEntry> next) { #ifdef PACKETDEBUG Debug5(LOG_NET,0,"Appending packet into MULTIPACKET (ID %d Size: %d). (ID %d Size: %d)\n", @@ -168,7 +168,7 @@ return true; }; -psNetPacketEntry *psNetPacketEntry::GetNextPacket(psNetPacket * &packetdata) +csRef<psNetPacketEntry> psNetPacketEntry::GetNextPacket(psNetPacket * &packetdata) { if (!packet->IsMultiPacket()) { @@ -253,13 +253,14 @@ packetdata->pktid, this, packet->pktid); #endif - psNetPacketEntry *pnew = new psNetPacketEntry (packetdata->flags, + csRef<psNetPacketEntry> pnew; + pnew.AttachNew(new psNetPacketEntry (packetdata->flags, clientnum, packetdata->pktid, packetdata->offset, packetdata->msgsize, packetdata->pktsize, - (const char *)packetdata->data); + (const char *)packetdata->data)); return pnew; } Modified: trunk/src/common/net/netpacket.h =================================================================== --- trunk/src/common/net/netpacket.h 2008-07-31 14:00:43 UTC (rev 1977) +++ trunk/src/common/net/netpacket.h 2008-08-01 02:06:50 UTC (rev 1978) @@ -180,15 +180,15 @@ uint32_t id, uint32_t off, uint32_t totalsize, uint16_t sz, const char *bytes); - psNetPacketEntry (psNetPacketEntry* ) + psNetPacketEntry (csRef<psNetPacketEntry> ) { CS_ASSERT(false); } ~psNetPacketEntry(); - bool Append(psNetPacketEntry *next); - psNetPacketEntry *GetNextPacket(psNetPacket* &packetdata); + bool Append(csRef<psNetPacketEntry> next); + csRef <psNetPacketEntry> GetNextPacket(psNetPacket* &packetdata); void* GetData() @@ -226,10 +226,10 @@ }; template<> -class csComparator<psNetPacketEntry *, psNetPacketEntry *> +class csComparator<csRef<psNetPacketEntry> , csRef<psNetPacketEntry> > { public: - static int Compare(psNetPacketEntry* const &r1, psNetPacketEntry* const &r2) + static int Compare(csRef<psNetPacketEntry> const &r1, csRef<psNetPacketEntry> const &r2) { return csComparator<psNetPacketEntry, psNetPacketEntry>::Compare(*r1, *r2); } Modified: trunk/src/server/netmanager.cpp =================================================================== --- trunk/src/server/netmanager.cpp 2008-07-31 14:00:43 UTC (rev 1977) +++ trunk/src/server/netmanager.cpp 2008-08-01 02:06:50 UTC (rev 1978) @@ -113,15 +113,15 @@ psPingMsg pong(0,ping.id,flags); pong.msg->msgid = GetRandomID(); - psNetPacketEntry *pkt = new + csRef<psNetPacketEntry> pkt; + pkt.AttachNew(new psNetPacketEntry(pong.msg->priority, 0, 0, 0, (uint32_t) pong.msg->bytes->GetTotalSize(), - (uint16_t) pong.msg->bytes->GetTotalSize(), pong.msg->bytes); + (uint16_t) pong.msg->bytes->GetTotalSize(), pong.msg->bytes)); SendFinalPacket(pkt,addr); + // pkt should be unref'd here - delete pkt; - return false; } @@ -142,9 +142,9 @@ void NetManager::CheckResendPkts() { - csHash<psNetPacketEntry*, PacketKey>::GlobalIterator it (awaitingack.GetIterator()); - psNetPacketEntry *pkt = NULL; - csArray<psNetPacketEntry *> pkts; + csHash<csRef<psNetPacketEntry>, PacketKey>::GlobalIterator it (awaitingack.GetIterator()); + csRef<psNetPacketEntry> pkt; + csArray<csRef<psNetPacketEntry> > pkts; csTicks currenttime = csGetTicks(); @@ -167,7 +167,6 @@ if (!outqueue) { awaitingack.Delete(PacketKey(pkt->clientnum, pkt->packet->pktid), pkt); - pkt->DecRef(); continue; } @@ -201,8 +200,6 @@ Debug2(LOG_NET,"No packet in ack queue :%d\n", pkt->packet->pktid); #endif } - else - pkt->DecRef(); } if(pkts.GetSize() > 0) @@ -480,13 +477,14 @@ // XXX: This is hacky, but we need to send the message to the client // here and now! Because in the next moment he'll be deleted - psNetPacketEntry* pkt = - new psNetPacketEntry(me->priority, newmsg->clientnum, + + csRef<psNetPacketEntry> pkt; + pkt.AttachNew( new psNetPacketEntry(me->priority, newmsg->clientnum, 0, 0, (uint32_t) newmsg->bytes->GetTotalSize(), - (uint16_t) newmsg->bytes->GetTotalSize(), newmsg->bytes); + (uint16_t) newmsg->bytes->GetTotalSize(), newmsg->bytes)); // this will also delete the pkt SendFinalPacket(pkt); - delete pkt; + // pkt should be unref'd here CHECK_FINAL_DECREF(newmsg, "FinalPacket"); break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mg...@us...> - 2008-08-01 12:54:36
|
Revision: 1980 http://planeshift.svn.sourceforge.net/planeshift/?rev=1980&view=rev Author: mgist Date: 2008-08-01 12:54:26 +0000 (Fri, 01 Aug 2008) Log Message: ----------- - Set eol-style. Modified Paths: -------------- trunk/data/effects/examples/casting.eff trunk/data/effects/examples/clear.eff trunk/data/effects/examples/clear.part trunk/data/effects/examples/fire.eff trunk/data/effects/examples/fire.part trunk/data/effects/examples/puff.part trunk/data/effects/examples/sparkle.part trunk/data/effects/examples/test.eff trunk/data/effects/examples/test2.eff trunk/data/effects/examples/x_obj_mesh.eff trunk/data/effects/examples/x_obj_particles.eff trunk/data/effects/examples/x_obj_quad.eff trunk/data/effects/examples/x_obj_spire.eff trunk/data/effects/examples/x_obj_star.eff trunk/data/effects/examples/x_obj_text.eff trunk/data/gui/configshadows.xml trunk/data/gui/pslaunch.xml trunk/data/gui/setupwindow.xml trunk/data/gui/skinwindow.xml trunk/data/options/shadows_def.xml trunk/data/zoneinfo.xml trunk/docs/credits_CrystalBlue_020.txt trunk/docs/history2007.txt trunk/docs/svn_guidelines.txt trunk/mk/autoconf/listutil.m4 trunk/mk/jam/upload.jam trunk/pslaunch.cfg trunk/pssetup.cfg trunk/src/client/gui/pawsconfigshadows.cpp trunk/src/client/gui/pawsconfigshadows.h trunk/src/common/effects/pseffectlight.cpp trunk/src/common/effects/pseffectlight.h trunk/src/common/engine/psregion.cpp trunk/src/common/engine/psregion.h trunk/src/common/util/fileutil.cpp trunk/src/common/util/fileutil.h trunk/src/pslaunch/binarypatch.cpp trunk/src/pslaunch/binarypatch.h trunk/src/pslaunch/download.h trunk/src/pslaunch/globals.h trunk/src/pslaunch/pawslauncherwindow.cpp trunk/src/pslaunch/pawslauncherwindow.h trunk/src/pslaunch/pslaunch.cfg trunk/src/pslaunch/pslaunch.cpp trunk/src/pslaunch/pslaunch.h trunk/src/pslaunch/updater.cpp trunk/src/pslaunch/updater.h trunk/src/pslaunch/updaterconfig.cpp trunk/src/pslaunch/updaterconfig.h trunk/src/pslaunch/updaterengine.cpp trunk/src/pslaunch/updaterengine.h trunk/src/pslaunch/updatexmls/HowToTest.txt trunk/src/pslaunch/updatexmls/README trunk/src/pslaunch/updatexmls/changedfiles.xml trunk/src/pslaunch/updatexmls/deletedfiles.xml trunk/src/pslaunch/updatexmls/newfiles.xml trunk/src/pslaunch/updatexmls/updaterinfo.xml trunk/src/server/database/mysql/create_indexes.sql trunk/src/server/database/mysql/guild_wars.sql trunk/src/server/database/mysql/introductions.sql trunk/src/server/database/mysql/race_spawns.sql trunk/src/server/database/mysql/warnings.sql trunk/src/server/introductionmanager.cpp trunk/src/server/introductionmanager.h trunk/src/setup/Jamfile trunk/src/setup/globals.h trunk/src/setup/pawssetupwindow.cpp trunk/src/setup/pawssetupwindow.h trunk/src/setup/pawsskinwindow.cpp trunk/src/setup/pawsskinwindow.h trunk/src/setup/pssetup.cpp trunk/src/setup/pssetup.h trunk/src/tools/wordnet/Jamfile trunk/src/tools/wordnet/binsrch.c trunk/src/tools/wordnet/morph.c trunk/src/tools/wordnet/search.c trunk/src/tools/wordnet/wn.h trunk/src/tools/wordnet/wnglobal.c trunk/src/tools/wordnet/wnhelp.c trunk/src/tools/wordnet/wnrtl.c trunk/src/tools/wordnet/wnutil.c trunk/updaterinfo.xml Property Changed: ---------------- trunk/data/effects/examples/casting.eff trunk/data/effects/examples/clear.eff trunk/data/effects/examples/clear.part trunk/data/effects/examples/fire.eff trunk/data/effects/examples/fire.part trunk/data/effects/examples/puff.part trunk/data/effects/examples/sparkle.part trunk/data/effects/examples/test.eff trunk/data/effects/examples/test2.eff trunk/data/effects/examples/x_obj_mesh.eff trunk/data/effects/examples/x_obj_particles.eff trunk/data/effects/examples/x_obj_quad.eff trunk/data/effects/examples/x_obj_spire.eff trunk/data/effects/examples/x_obj_star.eff trunk/data/effects/examples/x_obj_text.eff trunk/data/effects/misc/glyphs_baar_sophia.xml trunk/data/effects/misc/label.eff trunk/data/effects/misc/labelfontglyphs.xml trunk/data/gui/configchatbubbles.xml trunk/data/gui/configshadows.xml trunk/data/gui/groupmenu.xml trunk/data/gui/pslaunch.xml trunk/data/gui/setupwindow.xml trunk/data/gui/skinwindow.xml trunk/data/options/chatbubbles_def.xml trunk/data/options/shadows_def.xml trunk/data/zoneinfo.xml trunk/docs/credits_CrystalBlue_020.txt trunk/docs/history2007.txt trunk/docs/svn_guidelines.txt trunk/mk/autoconf/checkstl.m4 trunk/mk/autoconf/language.m4 trunk/mk/autoconf/listutil.m4 trunk/mk/autoconf/visibility.m4 trunk/mk/jam/crystalspace_staticplugins_msvc7.jam trunk/mk/jam/crystalspace_staticplugins_msvc71.jam trunk/mk/jam/crystalspace_staticplugins_msvc8.jam trunk/mk/jam/crystalspace_staticplugins_msvc9.jam trunk/mk/jam/upload.jam trunk/mk/msvc/apppsclient_static_static_glue_app_CRYSTAL.cpp trunk/mk/msvc/apppsclient_static_static_glue_lib_CRYSTAL.cpp trunk/mk/msvc/apppslaunch.manifest trunk/mk/msvc/apppslaunch.rc trunk/mk/msvc/apppslaunch_static.manifest trunk/mk/msvc/apppslaunch_static.rc trunk/mk/msvc/apppslaunch_static_static_glue_app_CRYSTAL.cpp trunk/mk/msvc/apppslaunch_static_static_glue_lib_CRYSTAL.cpp trunk/mk/msvc/apppslaunch_static_staticuse_CRYSTAL.cpp trunk/mk/msvc/apppsnpcclient_static_static_glue_app.cpp trunk/mk/msvc/apppsnpcclient_static_static_glue_app_CRYSTAL.cpp trunk/mk/msvc/apppsnpcclient_static_static_glue_lib.cpp trunk/mk/msvc/apppsnpcclient_static_static_glue_lib_CRYSTAL.cpp trunk/mk/msvc/apppsserver_static_static_glue_app.cpp trunk/mk/msvc/apppsserver_static_static_glue_app_CRYSTAL.cpp trunk/mk/msvc/apppsserver_static_static_glue_lib.cpp trunk/mk/msvc/apppsserver_static_static_glue_lib_CRYSTAL.cpp trunk/mk/msvc/apppssetup.manifest trunk/mk/msvc/apppssetup.rc trunk/mk/msvc/apppssetup_static.manifest trunk/mk/msvc/apppssetup_static.rc trunk/mk/msvc/apppssetup_static_static_glue_app_CRYSTAL.cpp trunk/mk/msvc/apppssetup_static_static_glue_lib_CRYSTAL.cpp trunk/mk/msvc/apppssetup_static_staticuse_CRYSTAL.cpp trunk/mk/msvc/apppsupdater.manifest trunk/mk/msvc/apppsupdater.rc trunk/mk/msvc/apppsupdater_static.manifest trunk/mk/msvc/apppsupdater_static.rc trunk/mk/msvc/apppsupdater_static_static_glue_app_CRYSTAL.cpp trunk/mk/msvc/apppsupdater_static_static_glue_lib_CRYSTAL.cpp trunk/mk/msvc/apppsupdater_static_staticuse_CRYSTAL.cpp trunk/mk/msvc/dbmysqlstatic_msvc7.jam trunk/mk/msvc/dbmysqlstatic_msvc71.jam trunk/mk/msvc/dbmysqlstatic_msvc8.jam trunk/mk/msvc/dbmysqlstatic_msvc9.jam trunk/mk/msvc7/apppslaunch.vcproj trunk/mk/msvc7/apppslaunch_static.vcproj trunk/mk/msvc7/apppssetup.vcproj trunk/mk/msvc7/apppssetup_static.vcproj trunk/mk/msvc7/apppsupdater.vcproj trunk/mk/msvc7/apppsupdater_static.vcproj trunk/mk/msvc7/libpsclient_static_plugins_CRYSTAL.vcproj trunk/mk/msvc7/libpslaunch_static_plugins_CRYSTAL.vcproj trunk/mk/msvc7/libpsnpcclient_static_plugins.vcproj trunk/mk/msvc7/libpsnpcclient_static_plugins_CRYSTAL.vcproj trunk/mk/msvc7/libpsserver_static_plugins.vcproj trunk/mk/msvc7/libpsserver_static_plugins_CRYSTAL.vcproj trunk/mk/msvc7/libpssetup_static_plugins_CRYSTAL.vcproj trunk/mk/msvc7/libpsupdater_static_plugins_CRYSTAL.vcproj trunk/mk/msvc7/libwordnet.vcproj trunk/mk/msvc7/libxdelta3.vcproj trunk/mk/msvc7/libxpnet.vcproj trunk/mk/msvc71/apppslaunch.vcproj trunk/mk/msvc71/apppslaunch_static.vcproj trunk/mk/msvc71/apppssetup.vcproj trunk/mk/msvc71/apppssetup_static.vcproj trunk/mk/msvc71/apppsupdater.vcproj trunk/mk/msvc71/apppsupdater_static.vcproj trunk/mk/msvc71/libpsclient_static_plugins_CRYSTAL.vcproj trunk/mk/msvc71/libpslaunch_static_plugins_CRYSTAL.vcproj trunk/mk/msvc71/libpsnpcclient_static_plugins.vcproj trunk/mk/msvc71/libpsnpcclient_static_plugins_CRYSTAL.vcproj trunk/mk/msvc71/libpsserver_static_plugins.vcproj trunk/mk/msvc71/libpsserver_static_plugins_CRYSTAL.vcproj trunk/mk/msvc71/libpssetup_static_plugins_CRYSTAL.vcproj trunk/mk/msvc71/libpsupdater_static_plugins_CRYSTAL.vcproj trunk/mk/msvc71/libwordnet.vcproj trunk/mk/msvc71/libxdelta3.vcproj trunk/mk/msvc71/libxpnet.vcproj trunk/mk/msvc8/apppslaunch.vcproj trunk/mk/msvc8/apppslaunch_static.vcproj trunk/mk/msvc8/apppssetup.vcproj trunk/mk/msvc8/apppssetup_static.vcproj trunk/mk/msvc8/apppsupdater.vcproj trunk/mk/msvc8/apppsupdater_static.vcproj trunk/mk/msvc8/libpsclient_static_plugins_CRYSTAL.vcproj trunk/mk/msvc8/libpslaunch_static_plugins_CRYSTAL.vcproj trunk/mk/msvc8/libpsnpcclient_static_plugins.vcproj trunk/mk/msvc8/libpsnpcclient_static_plugins_CRYSTAL.vcproj trunk/mk/msvc8/libpsserver_static_plugins.vcproj trunk/mk/msvc8/libpsserver_static_plugins_CRYSTAL.vcproj trunk/mk/msvc8/libpssetup_static_plugins_CRYSTAL.vcproj trunk/mk/msvc8/libpsupdater_static_plugins_CRYSTAL.vcproj trunk/mk/msvc8/libwordnet.vcproj trunk/mk/msvc8/libxdelta3.vcproj trunk/mk/msvc8/libxpnet.vcproj trunk/mk/msvc9/appeedit.vcproj trunk/mk/msvc9/apppsclient.vcproj trunk/mk/msvc9/apppsclient_static.vcproj trunk/mk/msvc9/apppslaunch.vcproj trunk/mk/msvc9/apppslaunch_static.vcproj trunk/mk/msvc9/apppsnpcclient.vcproj trunk/mk/msvc9/apppsnpcclient_static.vcproj trunk/mk/msvc9/apppsserver.vcproj trunk/mk/msvc9/apppsserver_static.vcproj trunk/mk/msvc9/apppssetup.vcproj trunk/mk/msvc9/apppssetup_static.vcproj trunk/mk/msvc9/apppsupdater.vcproj trunk/mk/msvc9/apppsupdater_static.vcproj trunk/mk/msvc9/grpall_psminimal.vcproj trunk/mk/msvc9/grpall_psminimalstatic.vcproj trunk/mk/msvc9/grpall_psstatic.vcproj trunk/mk/msvc9/grpall_pstypical.vcproj trunk/mk/msvc9/grpapps_psminimal.vcproj trunk/mk/msvc9/grpapps_psminimalstatic.vcproj trunk/mk/msvc9/grpapps_psstatic.vcproj trunk/mk/msvc9/grpapps_pstypical.vcproj trunk/mk/msvc9/grpclient_psminimal.vcproj trunk/mk/msvc9/grpclient_psminimalstatic.vcproj trunk/mk/msvc9/grpclient_psstatic.vcproj trunk/mk/msvc9/grpclient_pstypical.vcproj trunk/mk/msvc9/grpclient_static_psminimal.vcproj trunk/mk/msvc9/grpclient_static_psminimalstatic.vcproj trunk/mk/msvc9/grpclient_static_psstatic.vcproj trunk/mk/msvc9/grpclient_static_pstypical.vcproj trunk/mk/msvc9/grplibs_psminimal.vcproj trunk/mk/msvc9/grplibs_psminimalstatic.vcproj trunk/mk/msvc9/grplibs_psstatic.vcproj trunk/mk/msvc9/grplibs_pstypical.vcproj trunk/mk/msvc9/grpplugins_psminimal.vcproj trunk/mk/msvc9/grpplugins_psminimalstatic.vcproj trunk/mk/msvc9/grpplugins_psstatic.vcproj trunk/mk/msvc9/grpplugins_pstypical.vcproj trunk/mk/msvc9/grpserver_psminimal.vcproj trunk/mk/msvc9/grpserver_psminimalstatic.vcproj trunk/mk/msvc9/grpserver_psstatic.vcproj trunk/mk/msvc9/grpserver_pstypical.vcproj trunk/mk/msvc9/grpserver_static_psminimal.vcproj trunk/mk/msvc9/grpserver_static_psminimalstatic.vcproj trunk/mk/msvc9/grpserver_static_psstatic.vcproj trunk/mk/msvc9/grpserver_static_pstypical.vcproj trunk/mk/msvc9/grptools_psminimal.vcproj trunk/mk/msvc9/grptools_psminimalstatic.vcproj trunk/mk/msvc9/grptools_psstatic.vcproj trunk/mk/msvc9/grptools_pstypical.vcproj trunk/mk/msvc9/libbulkobjects.vcproj trunk/mk/msvc9/libdbmysqlstatic.vcproj trunk/mk/msvc9/libeffects.vcproj trunk/mk/msvc9/libfparser.vcproj trunk/mk/msvc9/libgui.vcproj trunk/mk/msvc9/libpaws.vcproj trunk/mk/msvc9/libpsclient_static_plugins_CRYSTAL.vcproj trunk/mk/msvc9/libpsengine.vcproj trunk/mk/msvc9/libpslaunch_static_plugins_CRYSTAL.vcproj trunk/mk/msvc9/libpsnet.vcproj trunk/mk/msvc9/libpsnpcclient_static_plugins.vcproj trunk/mk/msvc9/libpsnpcclient_static_plugins_CRYSTAL.vcproj trunk/mk/msvc9/libpsrpgrules.vcproj trunk/mk/msvc9/libpsserver_static_plugins.vcproj trunk/mk/msvc9/libpsserver_static_plugins_CRYSTAL.vcproj trunk/mk/msvc9/libpssetup_static_plugins_CRYSTAL.vcproj trunk/mk/msvc9/libpssound.vcproj trunk/mk/msvc9/libpsupdater_static_plugins_CRYSTAL.vcproj trunk/mk/msvc9/libpsutil.vcproj trunk/mk/msvc9/libwordnet.vcproj trunk/mk/msvc9/libxdelta3.vcproj trunk/mk/msvc9/libxpnet.vcproj trunk/mk/msvc9/plgdbmysql.vcproj trunk/mk/msvc9/wkspsminimal.sln trunk/mk/msvc9/wkspsminimalstatic.sln trunk/mk/msvc9/wkspsstatic.sln trunk/mk/msvc9/wkspstypical.sln trunk/pslaunch.cfg trunk/pssetup.cfg trunk/src/client/gui/pawsconfigchatbubbles.cpp trunk/src/client/gui/pawsconfigchatbubbles.h trunk/src/client/gui/pawsconfigshadows.cpp trunk/src/client/gui/pawsconfigshadows.h trunk/src/client/meshattach.cpp trunk/src/client/meshattach.h trunk/src/common/effects/pseffectlight.cpp trunk/src/common/effects/pseffectlight.h trunk/src/common/effects/pseffectobjlabel.cpp trunk/src/common/effects/pseffectobjlabel.h trunk/src/common/engine/colldet.cpp trunk/src/common/engine/colldet.h trunk/src/common/engine/linmove.cpp trunk/src/common/engine/linmove.h trunk/src/common/engine/psregion.cpp trunk/src/common/engine/psregion.h trunk/src/common/engine/solid.cpp trunk/src/common/engine/solid.h trunk/src/common/util/fileutil.cpp trunk/src/common/util/fileutil.h trunk/src/npcclient/npcmesh.cpp trunk/src/npcclient/npcmesh.h trunk/src/npcclient/npcoperations.cpp trunk/src/npcclient/npcoperations.h trunk/src/pslaunch/binarypatch.cpp trunk/src/pslaunch/binarypatch.h trunk/src/pslaunch/download.h trunk/src/pslaunch/globals.h trunk/src/pslaunch/pawslauncherwindow.cpp trunk/src/pslaunch/pawslauncherwindow.h trunk/src/pslaunch/pslaunch.cfg trunk/src/pslaunch/pslaunch.cpp trunk/src/pslaunch/pslaunch.h trunk/src/pslaunch/updater.cpp trunk/src/pslaunch/updater.h trunk/src/pslaunch/updaterconfig.cpp trunk/src/pslaunch/updaterconfig.h trunk/src/pslaunch/updaterengine.cpp trunk/src/pslaunch/updaterengine.h trunk/src/pslaunch/updatexmls/HowToTest.txt trunk/src/pslaunch/updatexmls/README trunk/src/pslaunch/updatexmls/changedfiles.xml trunk/src/pslaunch/updatexmls/deletedfiles.xml trunk/src/pslaunch/updatexmls/newfiles.xml trunk/src/pslaunch/updatexmls/updaterinfo.xml trunk/src/server/database/mysql/create_indexes.sql trunk/src/server/database/mysql/guild_wars.sql trunk/src/server/database/mysql/introductions.sql trunk/src/server/database/mysql/race_spawns.sql trunk/src/server/database/mysql/sc_waypoint_aliases.sql trunk/src/server/database/mysql/warnings.sql trunk/src/server/database/mysql/wc_accessrules.sql trunk/src/server/database/mysql/wc_cmdlog.sql trunk/src/server/gemmesh.cpp trunk/src/server/gemmesh.h trunk/src/server/introductionmanager.cpp trunk/src/server/introductionmanager.h trunk/src/setup/Jamfile trunk/src/setup/globals.h trunk/src/setup/pawssetupwindow.cpp trunk/src/setup/pawssetupwindow.h trunk/src/setup/pawsskinwindow.cpp trunk/src/setup/pawsskinwindow.h trunk/src/setup/pssetup.cpp trunk/src/setup/pssetup.h trunk/src/tools/wordnet/Jamfile trunk/src/tools/wordnet/binsrch.c trunk/src/tools/wordnet/morph.c trunk/src/tools/wordnet/search.c trunk/src/tools/wordnet/wn.h trunk/src/tools/wordnet/wnglobal.c trunk/src/tools/wordnet/wnhelp.c trunk/src/tools/wordnet/wnrtl.c trunk/src/tools/wordnet/wnutil.c trunk/src/tools/xdelta3/Jamfile trunk/src/tools/xdelta3/xdelta3-cfgs.h trunk/src/tools/xdelta3/xdelta3-decode.h trunk/src/tools/xdelta3/xdelta3-hash.h trunk/src/tools/xdelta3/xdelta3-list.h trunk/src/tools/xdelta3/xdelta3.c trunk/src/tools/xdelta3/xdelta3.h trunk/updaterinfo.xml Modified: trunk/data/effects/examples/casting.eff =================================================================== --- trunk/data/effects/examples/casting.eff 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/casting.eff 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,71 +1,71 @@ -<?xml version="1.0" encoding="utf-8" ?> -<library> - <textures> - <texture name="spark"> - <file>/this/data/effects/examples/sparkle_03.dds</file> - </texture> - </textures> - <materials> - <material name="spark"> - <texture>spark</texture> - </material> - </materials> - <addon plugin="PSEffects"> - <effect name="casting"> - <anchor type="basic" name="pos"> - <dir>none</dir> - </anchor> - - <obj type="spire" name="spark" material="spark" segments="20"> - <attach>pos</attach> - <dir>none</dir> - <death>1500</death> - <keyFrame time="0"> - <action name="position" x="0" y="0.01" z="0" /> - <action name="rotate" x="0" y="0" z="0" /> - <action name="scale" value="1" /> - <action name="height" value="0" /> - <action name="topscale" value="1.1" /> - <action name="colour" r="10" g="200" b="10" /> - </keyFrame> - <keyFrame time="800"> - <action name="position" x="0" y="0.01" z="0" /> - <action name="rotate" x="0" y="0" z="0" /> - <action name="scale" value="1.5" /> - <action name="height" value="1" /> - <action name="topscale" value="1.1" /> - </keyFrame> - <keyFrame time="900"> - <action name="height" value="0.75" /> - </keyFrame> - <keyFrame time="1200"> - <action name="rotate" y="360" /> - <action name="scale" value="1" /> - <action name="height" value="0.09" /> - </keyFrame> - </obj> - <obj type="spire" name="spire2" material="spark" segments="10"> - <attach>pos</attach> - <death>1500</death> - <dir>none</dir> - <keyFrame time="0"> - <action name="position" x="0" y="0.01" z="0" /> - <action name="rotate" x="0" y="0" z="0" /> - <action name="scale" value="0.5" /> - <action name="height" value="0" /> - <action name="topscale" value="1.1" /> - <action name="colour" r="10" g="200" b="10" /> - </keyFrame> - <keyFrame time="800"> - <action name="height" value="4" /> - <action name="topscale" value="1" /> - </keyFrame> - <keyFrame time="1200"> - <action name="rotate" y="360" /> - <action name="height" value="0.5" /> - <action name="topscale" value="3" /> - </keyFrame> - </obj> - </effect> - </addon> -</library> +<?xml version="1.0" encoding="utf-8" ?> +<library> + <textures> + <texture name="spark"> + <file>/this/data/effects/examples/sparkle_03.dds</file> + </texture> + </textures> + <materials> + <material name="spark"> + <texture>spark</texture> + </material> + </materials> + <addon plugin="PSEffects"> + <effect name="casting"> + <anchor type="basic" name="pos"> + <dir>none</dir> + </anchor> + + <obj type="spire" name="spark" material="spark" segments="20"> + <attach>pos</attach> + <dir>none</dir> + <death>1500</death> + <keyFrame time="0"> + <action name="position" x="0" y="0.01" z="0" /> + <action name="rotate" x="0" y="0" z="0" /> + <action name="scale" value="1" /> + <action name="height" value="0" /> + <action name="topscale" value="1.1" /> + <action name="colour" r="10" g="200" b="10" /> + </keyFrame> + <keyFrame time="800"> + <action name="position" x="0" y="0.01" z="0" /> + <action name="rotate" x="0" y="0" z="0" /> + <action name="scale" value="1.5" /> + <action name="height" value="1" /> + <action name="topscale" value="1.1" /> + </keyFrame> + <keyFrame time="900"> + <action name="height" value="0.75" /> + </keyFrame> + <keyFrame time="1200"> + <action name="rotate" y="360" /> + <action name="scale" value="1" /> + <action name="height" value="0.09" /> + </keyFrame> + </obj> + <obj type="spire" name="spire2" material="spark" segments="10"> + <attach>pos</attach> + <death>1500</death> + <dir>none</dir> + <keyFrame time="0"> + <action name="position" x="0" y="0.01" z="0" /> + <action name="rotate" x="0" y="0" z="0" /> + <action name="scale" value="0.5" /> + <action name="height" value="0" /> + <action name="topscale" value="1.1" /> + <action name="colour" r="10" g="200" b="10" /> + </keyFrame> + <keyFrame time="800"> + <action name="height" value="4" /> + <action name="topscale" value="1" /> + </keyFrame> + <keyFrame time="1200"> + <action name="rotate" y="360" /> + <action name="height" value="0.5" /> + <action name="topscale" value="3" /> + </keyFrame> + </obj> + </effect> + </addon> +</library> Property changes on: trunk/data/effects/examples/casting.eff ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/clear.eff =================================================================== --- trunk/data/effects/examples/clear.eff 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/clear.eff 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,35 +1,35 @@ -<?xml version="1.0" encoding="utf-8" ?> -<library> - <library>/this/data/effects/examples/clear.part</library> - <addon plugin="PSEffects"> - <effect name="clear"> - <anchor type="basic" name="pos"> - </anchor> - <anchor type="basic" name="target"> - <keyFrame time="0"> - <action name="position" x="0" y="1.5" z="0" /> - </keyFrame> - <keyFrame time="1000"> - <action name="position" x="0" y="1" z="0" /> - </keyFrame> - <keyFrame time="1500"> - <action name="position" x="0" y="1" z="0" /> - </keyFrame> - </anchor> - - <obj type="particles" name="clear" fact="clear"> - <attach>target</attach> - <death>3500</death> - <mixmode>add</mixmode> - <keyFrame time="0"> - <action name="animate" value="true" /> - </keyFrame> - <keyFrame time="7000"> - <action name="animate" value="false" /> - </keyFrame> - </obj> - </effect> - </addon> -</library> - - +<?xml version="1.0" encoding="utf-8" ?> +<library> + <library>/this/data/effects/examples/clear.part</library> + <addon plugin="PSEffects"> + <effect name="clear"> + <anchor type="basic" name="pos"> + </anchor> + <anchor type="basic" name="target"> + <keyFrame time="0"> + <action name="position" x="0" y="1.5" z="0" /> + </keyFrame> + <keyFrame time="1000"> + <action name="position" x="0" y="1" z="0" /> + </keyFrame> + <keyFrame time="1500"> + <action name="position" x="0" y="1" z="0" /> + </keyFrame> + </anchor> + + <obj type="particles" name="clear" fact="clear"> + <attach>target</attach> + <death>3500</death> + <mixmode>add</mixmode> + <keyFrame time="0"> + <action name="animate" value="true" /> + </keyFrame> + <keyFrame time="7000"> + <action name="animate" value="false" /> + </keyFrame> + </obj> + </effect> + </addon> +</library> + + Property changes on: trunk/data/effects/examples/clear.eff ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/clear.part =================================================================== --- trunk/data/effects/examples/clear.part 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/clear.part 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,37 +1,37 @@ -<?xml version="1.0" encoding="utf-8" ?> -<library> - <textures> - <texture name="clear"> - <file>/this/data/effects/examples/puff_03.dds</file> - </texture> - </textures> - <materials> - <material name="clear"> - <texture>clear</texture> - </material> - </materials> - <meshfact name="clear"> - <plugin>crystalspace.mesh.loader.factory.particles</plugin> - <params> - <material>clear</material> - - <emitter type="sphere"> - <duration>10</duration> - <radius>20</radius> - <emissionrate>4</emissionrate> - <mass min="1" max="6" /> - <uniformvelocity /> - <initialvelocity x="0" y="3" z="0" /> - <initialttl min="0.1" max="1" /> - <placement>center</placement> - </emitter> - <particlesize x="1.5" y="" /> - <effector type="force"> - <randomacceleration x="0" y="0" z="0" /> - </effector> - - <effector type="lincolor"> - </effector> - </params> - </meshfact> -</library> +<?xml version="1.0" encoding="utf-8" ?> +<library> + <textures> + <texture name="clear"> + <file>/this/data/effects/examples/puff_03.dds</file> + </texture> + </textures> + <materials> + <material name="clear"> + <texture>clear</texture> + </material> + </materials> + <meshfact name="clear"> + <plugin>crystalspace.mesh.loader.factory.particles</plugin> + <params> + <material>clear</material> + + <emitter type="sphere"> + <duration>10</duration> + <radius>20</radius> + <emissionrate>4</emissionrate> + <mass min="1" max="6" /> + <uniformvelocity /> + <initialvelocity x="0" y="3" z="0" /> + <initialttl min="0.1" max="1" /> + <placement>center</placement> + </emitter> + <particlesize x="1.5" y="" /> + <effector type="force"> + <randomacceleration x="0" y="0" z="0" /> + </effector> + + <effector type="lincolor"> + </effector> + </params> + </meshfact> +</library> Property changes on: trunk/data/effects/examples/clear.part ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/fire.eff =================================================================== --- trunk/data/effects/examples/fire.eff 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/fire.eff 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,49 +1,49 @@ -<?xml version="1.0" encoding="utf-8" ?> -<library> - <library>/this/data/effects/examples/fire.part</library> - <addon plugin="PSEffects"> - <effect name="fire"> - <anchor type="basic" name="pos"> - </anchor> - <anchor type="basic" name="target"> - <keyFrame time="0"> - <action name="position" x="0" y="1.5" z="0" /> - </keyFrame> - <keyFrame time="1000"> - <action name="position" x="0" y="1" z="0" /> - <action name="totarget" z=".1" /> - </keyFrame> - <keyFrame time="1500"> - <action name="position" x="0" y="1" z="0" /> - <action name="totarget" z=".3" /> - </keyFrame> - <keyFrame time="2000"> - <action name="position" x="0" y="1" z="0" /> - <action name="totarget" z=".5" /> - </keyFrame> - <keyFrame time="2500"> - <action name="position" x="0" y="1" z="0" /> - <action name="totarget" z=".7" /> - </keyFrame> - <keyFrame time="3500"> - <action name="position" x="0" y="1" z="0" /> - <action name="totarget" z="1" /> - </keyFrame> - </anchor> - - <obj type="particles" name="fire" fact="fire"> - <attach>target</attach> - <death>3500</death> - <mixmode>add</mixmode> - <keyFrame time="0"> - <action name="animate" value="true" /> - </keyFrame> - <keyFrame time="7000"> - <action name="animate" value="false" /> - </keyFrame> - </obj> - </effect> - </addon> -</library> - - +<?xml version="1.0" encoding="utf-8" ?> +<library> + <library>/this/data/effects/examples/fire.part</library> + <addon plugin="PSEffects"> + <effect name="fire"> + <anchor type="basic" name="pos"> + </anchor> + <anchor type="basic" name="target"> + <keyFrame time="0"> + <action name="position" x="0" y="1.5" z="0" /> + </keyFrame> + <keyFrame time="1000"> + <action name="position" x="0" y="1" z="0" /> + <action name="totarget" z=".1" /> + </keyFrame> + <keyFrame time="1500"> + <action name="position" x="0" y="1" z="0" /> + <action name="totarget" z=".3" /> + </keyFrame> + <keyFrame time="2000"> + <action name="position" x="0" y="1" z="0" /> + <action name="totarget" z=".5" /> + </keyFrame> + <keyFrame time="2500"> + <action name="position" x="0" y="1" z="0" /> + <action name="totarget" z=".7" /> + </keyFrame> + <keyFrame time="3500"> + <action name="position" x="0" y="1" z="0" /> + <action name="totarget" z="1" /> + </keyFrame> + </anchor> + + <obj type="particles" name="fire" fact="fire"> + <attach>target</attach> + <death>3500</death> + <mixmode>add</mixmode> + <keyFrame time="0"> + <action name="animate" value="true" /> + </keyFrame> + <keyFrame time="7000"> + <action name="animate" value="false" /> + </keyFrame> + </obj> + </effect> + </addon> +</library> + + Property changes on: trunk/data/effects/examples/fire.eff ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/fire.part =================================================================== --- trunk/data/effects/examples/fire.part 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/fire.part 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,38 +1,38 @@ -<?xml version="1.0" encoding="utf-8" ?> -<library> - <textures> - <texture name="fire"> - <file>/this/data/effects/examples/puff_01.dds</file> - </texture> - </textures> - <materials> - <material name="fire"> - <texture>fire</texture> - </material> - </materials> - <meshfact name="fire"> - <plugin>crystalspace.mesh.loader.factory.particles</plugin> - <params> - <material>fire</material> - - <emitter type="sphere"> - <duration>10</duration> - <radius>20</radius> - <emissionrate>4</emissionrate> - <mass min="1" max="6" /> - <uniformvelocity /> - <initialvelocity x="0" y="3" z="0" /> - <initialttl min="0.1" max="1" /> - <placement>center</placement> - </emitter> - <particlesize x="1.5" y="" /> - <effector type="force"> - <randomacceleration x="0" y="0" z="0" /> - </effector> - - <effector type="lincolor"> - <color red=".6" green=".4" blue=".5" alpha="1" /> - </effector> - </params> - </meshfact> -</library> +<?xml version="1.0" encoding="utf-8" ?> +<library> + <textures> + <texture name="fire"> + <file>/this/data/effects/examples/puff_01.dds</file> + </texture> + </textures> + <materials> + <material name="fire"> + <texture>fire</texture> + </material> + </materials> + <meshfact name="fire"> + <plugin>crystalspace.mesh.loader.factory.particles</plugin> + <params> + <material>fire</material> + + <emitter type="sphere"> + <duration>10</duration> + <radius>20</radius> + <emissionrate>4</emissionrate> + <mass min="1" max="6" /> + <uniformvelocity /> + <initialvelocity x="0" y="3" z="0" /> + <initialttl min="0.1" max="1" /> + <placement>center</placement> + </emitter> + <particlesize x="1.5" y="" /> + <effector type="force"> + <randomacceleration x="0" y="0" z="0" /> + </effector> + + <effector type="lincolor"> + <color red=".6" green=".4" blue=".5" alpha="1" /> + </effector> + </params> + </meshfact> +</library> Property changes on: trunk/data/effects/examples/fire.part ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/puff.part =================================================================== --- trunk/data/effects/examples/puff.part 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/puff.part 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,38 +1,38 @@ -<?xml version="1.0" encoding="utf-8" ?> -<library> - <textures> - <texture name="sparkle"> - <file>/this/data/effects/examples/puff_02.dds</file> - </texture> - </textures> - <materials> - <material name="sparkle"> - <texture>sparkle</texture> - </material> - </materials> - <meshfact name="sparkle"> - <plugin>crystalspace.mesh.loader.factory.particles</plugin> - <params> - <material>sparkle</material> - - <emitter type="sphere"> - <duration>10</duration> - <radius></radius> - <emissionrate>5</emissionrate> - <mass min="1" max="6" /> - <uniformvelocity /> - <initialvelocity x="0" y="1" z="0" /> - <initialttl min="1" max="2" /> - <placement>volume</placement> - </emitter> - <particlesize x="1" y="" /> - <effector type="force"> - <randomacceleration x="0" y="0" z="0" /> - </effector> - - <effector type="lincolor"> - <color red="1" green="1" blue="1" alpha="1" /> - </effector> - </params> - </meshfact> -</library> +<?xml version="1.0" encoding="utf-8" ?> +<library> + <textures> + <texture name="sparkle"> + <file>/this/data/effects/examples/puff_02.dds</file> + </texture> + </textures> + <materials> + <material name="sparkle"> + <texture>sparkle</texture> + </material> + </materials> + <meshfact name="sparkle"> + <plugin>crystalspace.mesh.loader.factory.particles</plugin> + <params> + <material>sparkle</material> + + <emitter type="sphere"> + <duration>10</duration> + <radius></radius> + <emissionrate>5</emissionrate> + <mass min="1" max="6" /> + <uniformvelocity /> + <initialvelocity x="0" y="1" z="0" /> + <initialttl min="1" max="2" /> + <placement>volume</placement> + </emitter> + <particlesize x="1" y="" /> + <effector type="force"> + <randomacceleration x="0" y="0" z="0" /> + </effector> + + <effector type="lincolor"> + <color red="1" green="1" blue="1" alpha="1" /> + </effector> + </params> + </meshfact> +</library> Property changes on: trunk/data/effects/examples/puff.part ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/sparkle.part =================================================================== --- trunk/data/effects/examples/sparkle.part 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/sparkle.part 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,38 +1,38 @@ -<?xml version="1.0" encoding="utf-8" ?> -<library> - <textures> - <texture name="sparkle"> - <file>/this/data/effects/examples/sparkle_02.dds</file> - </texture> - </textures> - <materials> - <material name="sparkle"> - <texture>sparkle</texture> - </material> - </materials> - <meshfact name="sparkle"> - <plugin>crystalspace.mesh.loader.factory.particles</plugin> - <params> - <material>sparkle</material> - - <emitter type="sphere"> - <duration>10</duration> - <radius></radius> - <emissionrate>5</emissionrate> - <mass min="1" max="6" /> - <uniformvelocity /> - <initialvelocity x="0" y="1" z="0" /> - <initialttl min="1" max="2" /> - <placement>volume</placement> - </emitter> - <particlesize x="1" y="" /> - <effector type="force"> - <randomacceleration x="0" y="0" z="0" /> - </effector> - - <effector type="lincolor"> - <color red="1" green="1" blue="1" alpha="1" /> - </effector> - </params> - </meshfact> -</library> +<?xml version="1.0" encoding="utf-8" ?> +<library> + <textures> + <texture name="sparkle"> + <file>/this/data/effects/examples/sparkle_02.dds</file> + </texture> + </textures> + <materials> + <material name="sparkle"> + <texture>sparkle</texture> + </material> + </materials> + <meshfact name="sparkle"> + <plugin>crystalspace.mesh.loader.factory.particles</plugin> + <params> + <material>sparkle</material> + + <emitter type="sphere"> + <duration>10</duration> + <radius></radius> + <emissionrate>5</emissionrate> + <mass min="1" max="6" /> + <uniformvelocity /> + <initialvelocity x="0" y="1" z="0" /> + <initialttl min="1" max="2" /> + <placement>volume</placement> + </emitter> + <particlesize x="1" y="" /> + <effector type="force"> + <randomacceleration x="0" y="0" z="0" /> + </effector> + + <effector type="lincolor"> + <color red="1" green="1" blue="1" alpha="1" /> + </effector> + </params> + </meshfact> +</library> Property changes on: trunk/data/effects/examples/sparkle.part ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/test.eff =================================================================== --- trunk/data/effects/examples/test.eff 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/test.eff 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,43 +1,43 @@ -<?xml version="1.0" encoding="utf-8" ?> - <library> - <library>/this/data/effects/examples/sparkle.part</library> - <addon plugin="PSEffects"> - <effect name="test_"> - <anchor type="basic" name="pos"> - </anchor> - <anchor type="basic" name="target"> - <keyFrame time="0"> - <action name="position" x="0" y="1"/> - <action name="totarget" z=".1" /> - </keyFrame> - <keyFrame time="200"> - <action name="position" x="0" y="1"/> - <action name="totarget" z=".5" /> - </keyFrame> - <keyFrame time="500"> - <action name="position" x="0" y="1"/> - <action name="totarget" z="1" /> - </keyFrame> - </anchor> - - <obj type="spire" name="sparkle" material="sparkle" segments="30"> - <attach>pos</attach> - <dir>none</dir> - <birth>0</birth> - <death>3000</death> - <keyFrame time="0"> - <action name="position" x="0" y="0.3" z="0" /> - <action name="scale" value="0.9" /> - <action name="height" value="0.8" /> - <action name="topscale" value="1.0" /> - <action name="colour" r="100" g="140" b="110" /> - </keyFrame> - <keyFrame time="2000"> - <action name="spin" x="0" y="360" z="0" /> - </keyFrame> - </obj> - </effect> - </addon> -</library> - - +<?xml version="1.0" encoding="utf-8" ?> + <library> + <library>/this/data/effects/examples/sparkle.part</library> + <addon plugin="PSEffects"> + <effect name="test_"> + <anchor type="basic" name="pos"> + </anchor> + <anchor type="basic" name="target"> + <keyFrame time="0"> + <action name="position" x="0" y="1"/> + <action name="totarget" z=".1" /> + </keyFrame> + <keyFrame time="200"> + <action name="position" x="0" y="1"/> + <action name="totarget" z=".5" /> + </keyFrame> + <keyFrame time="500"> + <action name="position" x="0" y="1"/> + <action name="totarget" z="1" /> + </keyFrame> + </anchor> + + <obj type="spire" name="sparkle" material="sparkle" segments="30"> + <attach>pos</attach> + <dir>none</dir> + <birth>0</birth> + <death>3000</death> + <keyFrame time="0"> + <action name="position" x="0" y="0.3" z="0" /> + <action name="scale" value="0.9" /> + <action name="height" value="0.8" /> + <action name="topscale" value="1.0" /> + <action name="colour" r="100" g="140" b="110" /> + </keyFrame> + <keyFrame time="2000"> + <action name="spin" x="0" y="360" z="0" /> + </keyFrame> + </obj> + </effect> + </addon> +</library> + + Property changes on: trunk/data/effects/examples/test.eff ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/test2.eff =================================================================== --- trunk/data/effects/examples/test2.eff 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/test2.eff 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,29 +1,29 @@ -<?xml version="1.0" encoding="utf-8" ?> - <library> - <library>/this/data/effects/examples/puff.part</library> -<materials> - <material name="sparkle"> - <texture>sparkle</texture> - </material> - </materials> - <addon plugin="PSEffects"> - <effect name="puff"> - <anchor type="basic" name="pos"> - </anchor> - - <obj type="spire" name="test" material="sparkle" fact="sparkle" segments="20"> - <attach>pos</attach> - <death>500</death> - <mixmode>add</mixmode> - <keyFrame time="0"> - <action name="animate" value="true" /> - </keyFrame> - <keyFrame time="500"> - <action name="animate" value="false" /> - </keyFrame> - </obj> - </effect> - </addon> -</library> - - +<?xml version="1.0" encoding="utf-8" ?> + <library> + <library>/this/data/effects/examples/puff.part</library> +<materials> + <material name="sparkle"> + <texture>sparkle</texture> + </material> + </materials> + <addon plugin="PSEffects"> + <effect name="puff"> + <anchor type="basic" name="pos"> + </anchor> + + <obj type="spire" name="test" material="sparkle" fact="sparkle" segments="20"> + <attach>pos</attach> + <death>500</death> + <mixmode>add</mixmode> + <keyFrame time="0"> + <action name="animate" value="true" /> + </keyFrame> + <keyFrame time="500"> + <action name="animate" value="false" /> + </keyFrame> + </obj> + </effect> + </addon> +</library> + + Property changes on: trunk/data/effects/examples/test2.eff ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/x_obj_mesh.eff =================================================================== --- trunk/data/effects/examples/x_obj_mesh.eff 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/x_obj_mesh.eff 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,28 +1,28 @@ -<?xml version="1.0" encoding="utf-8" ?> -<library> - <library>/this/art/effects/examples/mesh_example.spr</library> - <addon plugin="PSEffects"> - <effect name="x_obj_mesh"> - <anchor type="basic" name="pos"> - <dir>none</dir> - </anchor> - <obj type="mesh" name="mesh_example" fact="mesh_example"> - <attach>pos</attach> - <death>none</death> - <mixmode>mult2</mixmode> - </obj> - <obj type="mesh" name="mesh_example2" fact="mesh_example"> - <attach>pos</attach> - <death>none</death> - <mixmode>mult2</mixmode> - <keyFrame time="0"> - <action name="scale" value="0.75" /> - <action name="position" x="1" y="2" /> - <action name="rotate" y="45" /> - <action name="spin" y="45" /> - <action name="colour" r="128" g="128" b="128" /> - </keyFrame> - </obj> - </effect> - </addon> -</library> +<?xml version="1.0" encoding="utf-8" ?> +<library> + <library>/this/art/effects/examples/mesh_example.spr</library> + <addon plugin="PSEffects"> + <effect name="x_obj_mesh"> + <anchor type="basic" name="pos"> + <dir>none</dir> + </anchor> + <obj type="mesh" name="mesh_example" fact="mesh_example"> + <attach>pos</attach> + <death>none</death> + <mixmode>mult2</mixmode> + </obj> + <obj type="mesh" name="mesh_example2" fact="mesh_example"> + <attach>pos</attach> + <death>none</death> + <mixmode>mult2</mixmode> + <keyFrame time="0"> + <action name="scale" value="0.75" /> + <action name="position" x="1" y="2" /> + <action name="rotate" y="45" /> + <action name="spin" y="45" /> + <action name="colour" r="128" g="128" b="128" /> + </keyFrame> + </obj> + </effect> + </addon> +</library> Property changes on: trunk/data/effects/examples/x_obj_mesh.eff ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/x_obj_particles.eff =================================================================== --- trunk/data/effects/examples/x_obj_particles.eff 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/x_obj_particles.eff 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,22 +1,22 @@ -<?xml version="1.0" encoding="utf-8" ?> -<library> - <library>/this/art/effects/examples/particles_example.part</library> - <addon plugin="PSEffects"> - <effect name="x_obj_particles"> - <anchor type="basic" name="pos"> - <dir>none</dir> - </anchor> - <obj type="particles" name="particles_example" fact="particles_example"> - <attach>pos</attach> - <death>none</death> - <keyFrame time="0"> - <action name="animate" value="true" /> - </keyFrame> - <keyFrame time="30000"> - <action name="animate" value="false" /> - </keyFrame> - </obj> - </effect> - </addon> -</library> - +<?xml version="1.0" encoding="utf-8" ?> +<library> + <library>/this/art/effects/examples/particles_example.part</library> + <addon plugin="PSEffects"> + <effect name="x_obj_particles"> + <anchor type="basic" name="pos"> + <dir>none</dir> + </anchor> + <obj type="particles" name="particles_example" fact="particles_example"> + <attach>pos</attach> + <death>none</death> + <keyFrame time="0"> + <action name="animate" value="true" /> + </keyFrame> + <keyFrame time="30000"> + <action name="animate" value="false" /> + </keyFrame> + </obj> + </effect> + </addon> +</library> + Property changes on: trunk/data/effects/examples/x_obj_particles.eff ___________________________________________________________________ Added: svn:eol-style + native Modified: trunk/data/effects/examples/x_obj_quad.eff =================================================================== --- trunk/data/effects/examples/x_obj_quad.eff 2008-08-01 02:14:36 UTC (rev 1979) +++ trunk/data/effects/examples/x_obj_quad.eff 2008-08-01 12:54:26 UTC (rev 1980) @@ -1,113 +1,113 @@ -<?xml version="1.0" encoding="utf-8" ?> -<library> - <textures> - <texture name="quad_example"> - <file>/this/art/effects/examples/quad_example.dds</file> - </texture> - </textures> - <materials> - <material name="quad_example"> - <texture>quad_example</texture> - </material> - </materials> - <addon plugin="PSEffects"> - <effect name="x_obj_quad"> - <anchor type="basic" name="pos"> - <dir>none</dir> - </anchor> - - <!-- Simplest Quad (the white one) --> - <obj type="quad" name="quad" material="quad_example"> - <attach>pos</attach> - <death>none</death> - </obj> - - <!-- Quad Dir: Target (the red one) --> - <!-- HINT: Rotate the target actor to see the effect this has --> - <obj type="quad" name="quad_target" material="quad_example"> - <attach>pos</attach> - <death>none</death> - <dir>target</dir> - <keyFrame time="0"> - <action name="position" y="0.5" z="1" /> - <action name="spin" x="90" /> - <action name="colour" r="255" g="0" b="0" /> - </keyFrame> - </obj> - - <!-- Quad Dir: Origin (the green one) --> - <!-- HINT: Rotate the origin actor to see the effect this has --> - <obj type="quad" name="quad_origin" material="quad_example"> - <attach>pos</attach> - <death>none</death> - <dir>origin</dir> - <keyFrame time="0"> - <action name="position" y="1" z="1" /> - <action name="spin" x="90" /> - <action name="colour" r="0" g="255" b="0" /> - </keyFrame> - </obj> - - <!-- Quad Dir: ToTarget (the blue one) --> - <!-- HINT: Move the target/origin away from eachother or around to see this the effect this has --> - <obj type="quad" name="quad_totarget" material="quad_example"> - <attach>pos</attach> - <death>none</death> - <dir>totarget</dir> - <keyFrame time="0"> - <action name="position" y="1.5" z="1" /> - <action name="spin" x="90" /> - <action name="colour" r="0" g="0" b="255" /> - </keyFrame> - </obj> - - <!-- Quad Dir: Camera (the yellow one) --> - <!-- HINT: Move the camera around to see this the effect this has --> - <obj type="quad" name="quad_camera" material="quad_example"> - <attach>pos</attach> - <death>none</death> - <dir>camera</dir> - <keyFrame time="0"> - <action name="position" y="2" z="1" /> - <action name="colour" r="255" g="255" b="0" /> - </keyFrame> - </obj> - - <!-- Quad Dir: Billboard (the magenta one) --> - <!-- NOTE: This will be very similar to the Camera dir, but it's still slightly different. - Experiment with the two to see which works best for your situation. - Because of the texture though, and how it's used, you probably won't see a difference in this situation. - --> - <obj type="quad" name="quad_billboard" material="quad_example"> - <attach>pos</attach> - <death>none</death> - <dir>billboard</dir> - <keyFrame time="0"> - <action name="position" y="2.5" z="1" /> - <action name="colour" r="255" g="0" b="255" /> - </keyFrame> - </obj> - - <!-- Quad showing cell animations (the cyan one). --> - <!-- This is basically dividing the texture into squared cells and choosing which one to display --> - <!-- The xcells and ycells in the obj line determine the division of the texture --> - <obj type="quad" name="quad_cells" xcells="2" ycells="1" material="quad_example"> - <attach>pos</attach> - <death>none</death> - <dir>billboard</dir> - <keyFrame time="0"> - <action name="position" y="3" z="1" /> - <action name="colour" r="0" g="255" b="255" /> - <action name="cell" value="0" /> - </keyFrame> - <keyFrame time="500"> - <action name="cell" value="1" /> - </keyFrame> - <keyFrame time="1000"> - <action name="cell" value="0" /> - </keyFrame> - </obj> - </effect> - </addon> -</library> - +<?xml version="1.0" encoding="utf-8" ?> +<library> + <textures> + <texture name="quad_example"> + <file>/this/art/effects/examples/quad_example.dds</file> + </texture> + </textures> + <materials> + <material name="quad_example"> + <texture>quad_example</texture> + </material> + </materials> + <addon plugin="PSEffects"> + <effect name="x_obj_quad"> + <anchor type="basic" name="pos"> + <dir>none</dir> + </anchor> + + <!-- Simplest Quad (the white one) --> + <obj type="quad" name="quad" material="quad_example"> + <attach>pos</attach> + <death>none</death> + </obj> + + <!-- Quad Dir: Target (the red one) --> + <!-- HINT: Rotate the target actor to see the effect this has --> + <obj type="quad" name="quad_target" material="quad_example"> + <attach>pos</attach> + <death>none</death> + <dir>target</dir> + <keyFrame time="0"> + <action name="position" y="0.5" z="1" /> + <action name="spin" x="90" /> + <action name="colour" r="255" g="0" b="0" /> + </keyFrame> + </obj> + + <!-- Quad Dir: Origin (the green one) --> + <!-- HINT: Rotate the origin actor to see the effect this has --> + <obj type="quad" name="quad_origin" material="quad_example"> + <attach>pos</attach> + <death>none</death> + <dir>origin</dir> + <keyFrame time="0"> + <action name="position" y="1" z="1" /> + <action name="spin" x="90" /> + <action name="colour" r="0" g="255" b="0" /> + </keyFrame> + </obj> + + <!-- Quad Dir: ToTarget (the blue one) --> + <!-- HINT: Move the target/origin away from eachother or around to see this the effect this has --> + <obj type="quad" name="quad_totarget" material="quad_example"> + <attach>pos</attach> + <death>none</death> + <dir>totarget</dir> + <keyFrame time="0"> + <action name="position" y="1.5" z="1" /> + <action name="spin" x="90" /> + <action name="colour" r="0" g="0" b="255" /> + </keyFrame> + </obj> + + <!-- Quad Dir: Camera (the yellow one) --> + <!-- HINT: Move the camera around to see this the effect this has --> + <obj type="quad" name="quad_camera" material="quad_example"> + <attach>pos</attach> + <death>none</death> + <dir>camera</dir> + <keyFrame time="0"> + <action name="position" y="2" z="1" /> + <action name="colour" r="255" g="255" b="0" /> + </keyFrame> + </obj> + + <!-- Quad Dir: Billboard (the magenta one) --> + <!-- NOTE: This will be very similar to the Camera dir, but it's still slightly different. + Experiment with the two to see which works best for your situation. + Because of the texture though, and how it's used, you probably... [truncated message content] |
From: <hei...@us...> - 2008-08-01 20:41:31
|
Revision: 1984 http://planeshift.svn.sourceforge.net/planeshift/?rev=1984&view=rev Author: heinchen Date: 2008-08-01 20:41:40 +0000 (Fri, 01 Aug 2008) Log Message: ----------- mem leak fix in progressionmanager Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/progressionmanager.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-08-01 14:52:48 UTC (rev 1983) +++ trunk/docs/history.txt 2008-08-01 20:41:40 UTC (rev 1984) @@ -1,3 +1,6 @@ +*** 2008-08-30 by Andreas Heinchen +- Fixed 2 mem leaks in ProgressionOperation + *** 2008-07-31 by Andreas Heinchen - Fixed FS#426 - stamina drain on map load - another patch for FS#1373 from weltall Modified: trunk/src/server/progressionmanager.cpp =================================================================== --- trunk/src/server/progressionmanager.cpp 2008-08-01 14:52:48 UTC (rev 1983) +++ trunk/src/server/progressionmanager.cpp 2008-08-01 20:41:40 UTC (rev 1984) @@ -223,6 +223,8 @@ script.Append(node->GetAttributeValue("value")); script_text = node->GetAttributeValue("value"); // save for persisting later + // TODO is this is really efficient? can we reuse? + if (value_script) delete value_script; value_script = new MathScript(prg_script->name.GetData(),script); valuevar = value_script->GetVar("Value"); // always required and supplied @@ -256,7 +258,9 @@ csString script("Delay = "); script.Append(delay_text); - + + // TODO is this is really efficient? can we reuse? + if (delay_script) delete delay_script; delay_script = new MathScript(prg_script->name.GetData(),script); delayvar = delay_script->GetVar("Delay"); // always required and supplied This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hei...@us...> - 2008-08-01 22:49:45
|
Revision: 1985 http://planeshift.svn.sourceforge.net/planeshift/?rev=1985&view=rev Author: heinchen Date: 2008-08-01 22:49:53 +0000 (Fri, 01 Aug 2008) Log Message: ----------- revert previous patch Modified Paths: -------------- trunk/docs/history.txt trunk/src/server/progressionmanager.cpp Modified: trunk/docs/history.txt =================================================================== --- trunk/docs/history.txt 2008-08-01 20:41:40 UTC (rev 1984) +++ trunk/docs/history.txt 2008-08-01 22:49:53 UTC (rev 1985) @@ -1,6 +1,3 @@ -*** 2008-08-30 by Andreas Heinchen -- Fixed 2 mem leaks in ProgressionOperation - *** 2008-07-31 by Andreas Heinchen - Fixed FS#426 - stamina drain on map load - another patch for FS#1373 from weltall Modified: trunk/src/server/progressionmanager.cpp =================================================================== --- trunk/src/server/progressionmanager.cpp 2008-08-01 20:41:40 UTC (rev 1984) +++ trunk/src/server/progressionmanager.cpp 2008-08-01 22:49:53 UTC (rev 1985) @@ -223,8 +223,6 @@ script.Append(node->GetAttributeValue("value")); script_text = node->GetAttributeValue("value"); // save for persisting later - // TODO is this is really efficient? can we reuse? - if (value_script) delete value_script; value_script = new MathScript(prg_script->name.GetData(),script); valuevar = value_script->GetVar("Value"); // always required and supplied @@ -258,9 +256,7 @@ csString script("Delay = "); script.Append(delay_text); - - // TODO is this is really efficient? can we reuse? - if (delay_script) delete delay_script; + delay_script = new MathScript(prg_script->name.GetData(),script); delayvar = delay_script->GetVar("Delay"); // always required and supplied This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |