From: <Kha...@us...> - 2009-03-22 17:30:25
|
Revision: 3285 http://planeshift.svn.sourceforge.net/planeshift/?rev=3285&view=rev Author: KhakiLord Date: 2009-03-22 17:30:20 +0000 (Sun, 22 Mar 2009) Log Message: ----------- Changed npc tick behavior slightly. Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2009-03-22 17:24:46 UTC (rev 3284) +++ trunk/src/npcclient/npc.cpp 2009-03-22 17:30:20 UTC (rev 3285) @@ -100,9 +100,6 @@ { // Ensure NPC only has one tick at a time. CS_ASSERT(tick == NULL); - tick = new psNPCTick(NPC_BRAIN_TICK, this); - - tick->QueueEvent(); if(npcclient->IsReady()) { csTicks when = csGetTicks(); @@ -117,6 +114,9 @@ } networkmanager->SendAllCommands(true); } + tick = new psNPCTick(NPC_BRAIN_TICK, this); + + tick->QueueEvent(); } void NPC::Dump() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <Kha...@us...> - 2009-03-29 02:02:04
|
Revision: 3340 http://planeshift.svn.sourceforge.net/planeshift/?rev=3340&view=rev Author: KhakiLord Date: 2009-03-29 01:37:32 +0000 (Sun, 29 Mar 2009) Log Message: ----------- Fixes bug where tribe members go into infinite respawn, so that npcclient now disables NPCs with wrong starting positions. Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2009-03-28 17:21:31 UTC (rev 3339) +++ trunk/src/npcclient/npc.cpp 2009-03-29 01:37:32 UTC (rev 3340) @@ -711,7 +711,7 @@ { CPrintf(CON_ERROR,"Got bad starting location %f %f %f, killing %s (%s/%s).\n", pos.x, pos.y, pos.z, name.GetData(), ShowID(pid), ShowID(GetActor()->GetEID())); - SetAlive(false); + Disable(); break; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2010-09-02 18:15:17
|
Revision: 6177 http://planeshift.svn.sourceforge.net/planeshift/?rev=6177&view=rev Author: weltall2 Date: 2010-09-02 18:15:11 +0000 (Thu, 02 Sep 2010) Log Message: ----------- removed duplicate code Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2010-08-26 18:02:51 UTC (rev 6176) +++ trunk/src/npcclient/npc.cpp 2010-09-02 18:15:11 UTC (rev 6177) @@ -1009,8 +1009,6 @@ { sectorName = sector->QueryObject()->GetName(); } - - pos = obj->pcmesh->GetMesh()->GetMovable()->GetPosition(); CPrintf(CON_CMDOUTPUT, "%6d %5.1f %40s %5.1f", h->entity_id.Unbox(), h->hate_amount, toString(pos, sector).GetDataSafe(), world->Distance(pos,sector,myPos,mySector)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-13 10:33:15
|
Revision: 6916 http://planeshift.svn.sourceforge.net/planeshift/?rev=6916&view=rev Author: weltall2 Date: 2011-02-13 10:33:09 +0000 (Sun, 13 Feb 2011) Log Message: ----------- initialized a variable Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2011-02-12 22:10:49 UTC (rev 6915) +++ trunk/src/npcclient/npc.cpp 2011-02-13 10:33:09 UTC (rev 6916) @@ -587,7 +587,7 @@ { gemNPCActor* nearestEnt = NULL; csVector3 nearestLoc; - iSector* nearestSector; + iSector* nearestSector = NULL; float nearestRange=range; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wel...@us...> - 2011-02-13 10:39:14
|
Revision: 6917 http://planeshift.svn.sourceforge.net/planeshift/?rev=6917&view=rev Author: weltall2 Date: 2011-02-13 10:39:08 +0000 (Sun, 13 Feb 2011) Log Message: ----------- warning fixes Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2011-02-13 10:33:09 UTC (rev 6916) +++ trunk/src/npcclient/npc.cpp 2011-02-13 10:39:08 UTC (rev 6917) @@ -575,6 +575,8 @@ disabled = false; } +///TODO: The next 3 functions are exactly the same except a line in the code, maybe figure out a better way to handle this? + gemNPCActor* NPC::GetNearestActor(float range, csVector3 &destPosition, iSector* &destSector, float &destRange) { csVector3 loc; @@ -635,7 +637,7 @@ { gemNPCActor* nearestEnt = NULL; csVector3 nearestLoc; - iSector* nearestSector; + iSector* nearestSector = NULL; float nearestRange=range; @@ -683,7 +685,7 @@ { gemNPCActor* nearestEnt = NULL; csVector3 nearestLoc; - iSector* nearestSector; + iSector* nearestSector = NULL; float nearestRange=range; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2011-12-20 15:30:01
|
Revision: 7863 http://planeshift.svn.sourceforge.net/planeshift/?rev=7863&view=rev Author: magodra Date: 2011-12-20 15:29:51 +0000 (Tue, 20 Dec 2011) Log Message: ----------- - Fixed correct lookup of race for NPCs. - Added print of race in the print command. Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2011-12-20 14:21:27 UTC (rev 7862) +++ trunk/src/npcclient/npc.cpp 2011-12-20 15:29:51 UTC (rev 7863) @@ -595,6 +595,7 @@ CPrintf(CON_CMDOUTPUT, "Walk velocity: %.2f\n",walkVelocity); CPrintf(CON_CMDOUTPUT, "Run velocity: %.2f\n",runVelocity); CPrintf(CON_CMDOUTPUT, "Owner: %s\n",GetOwnerName()); + CPrintf(CON_CMDOUTPUT, "Race: %s\n",GetRaceInfo()?GetRaceInfo()->GetName():"(None)"); CPrintf(CON_CMDOUTPUT, "Region: %s\n",GetRegion()?GetRegion()->GetName():"(None)"); CPrintf(CON_CMDOUTPUT, "Inside region: %s\n",insideRegion?"Yes":"No"); CPrintf(CON_CMDOUTPUT, "Tribe: %s\n",GetTribe()?GetTribe()->GetName():"(None)"); @@ -1051,7 +1052,7 @@ { if (!raceInfo && npcActor) { - raceInfo = npcclient->GetRaceInfo(npcActor->GetName()); + raceInfo = npcclient->GetRaceInfo(npcActor->GetRace()); } return raceInfo; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2012-07-20 22:10:15
|
Revision: 8393 http://planeshift.svn.sourceforge.net/planeshift/?rev=8393&view=rev Author: magodra Date: 2012-07-20 22:10:09 +0000 (Fri, 20 Jul 2012) Log Message: ----------- - Fixed error in npc printing. Fixed disable function to use input. Removed unused variable in function. Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2012-07-20 21:59:26 UTC (rev 8392) +++ trunk/src/npcclient/npc.cpp 2012-07-20 22:10:09 UTC (rev 8393) @@ -639,7 +639,7 @@ void NPC::Disable( bool disable) { - disabled = disabled; + disabled = disable; // Stop the movement @@ -702,11 +702,11 @@ while (iter.HasNext()) { csString name; - Locate* value = iter.Next(name); - CPrintf(CON_CMDOUTPUT, "%-15s Position: %s\n",name.GetDataSafe(),toString(activeLocate->pos,activeLocate->sector).GetDataSafe()); - CPrintf(CON_CMDOUTPUT, "%-15s Angle: %.2f\n","",activeLocate->angle); - CPrintf(CON_CMDOUTPUT, "%-15s Radius: %.2f\n","",activeLocate->radius); - CPrintf(CON_CMDOUTPUT, "%-15s WP: %s\n","",activeLocate->wp?activeLocate->wp->GetName():""); + Locate* locate = iter.Next(name); + CPrintf(CON_CMDOUTPUT, "%-15s Position: %s\n",name.GetDataSafe(),toString(locate->pos,locate->sector).GetDataSafe()); + CPrintf(CON_CMDOUTPUT, "%-15s Angle: %.2f\n","",locate->angle); + CPrintf(CON_CMDOUTPUT, "%-15s Radius: %.2f\n","",locate->radius); + CPrintf(CON_CMDOUTPUT, "%-15s WP: %s\n","",locate->wp?locate->wp->GetName():""); } @@ -1287,7 +1287,6 @@ void NPC::ReplaceBuffers(csString& result) { - int index = 0; BufferHash::GlobalIterator iter = npcBuffer.GetIterator(); while (iter.HasNext()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2012-07-24 21:39:17
|
Revision: 8401 http://planeshift.svn.sourceforge.net/planeshift/?rev=8401&view=rev Author: magodra Date: 2012-07-24 21:39:11 +0000 (Tue, 24 Jul 2012) Log Message: ----------- - Added npc and pid to error messages in NPC::Load. Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2012-07-23 22:06:31 UTC (rev 8400) +++ trunk/src/npcclient/npc.cpp 2012-07-24 21:39:11 UTC (rev 8401) @@ -311,7 +311,7 @@ pid = row.GetInt("char_id"); if ( pid == 0 ) { - Error1("NPC has no id attribute. Error in XML"); + Error2("NPC '%s' has no id attribute. Error in XML",name.GetDataSafe()); return false; } } @@ -319,7 +319,7 @@ type = row["npctype"]; if ( type.Length() == 0 ) { - Error1("NPC has no type attribute. Error in XML"); + Error3("NPC '%s'(%s) has no type attribute. Error in XML",name.GetDataSafe(),ShowID(pid)); return false; } @@ -328,7 +328,7 @@ NPCType* t = npctypes.Get(type, NULL); if (!t) { - Error2("NPC type '%s' is not found. Error in XML",(const char *)type); + Error4("NPC '%s'(%s) type '%s' is not found. Error in XML",name.GetDataSafe(),ShowID(pid),(const char *)type); return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lpa...@us...> - 2012-12-11 00:59:50
|
Revision: 8501 http://planeshift.svn.sourceforge.net/planeshift/?rev=8501&view=rev Author: lpancallo Date: 2012-12-11 00:59:44 +0000 (Tue, 11 Dec 2012) Log Message: ----------- Removed heartbeat when an NPC is disabled. Restart heartbeat when an NPC is enabled. Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2012-12-10 22:52:11 UTC (rev 8500) +++ trunk/src/npcclient/npc.cpp 2012-12-11 00:59:44 UTC (rev 8501) @@ -137,6 +137,10 @@ void NPC::Tick() { + // If NPC is disabled it should not tick + if (disabled) + return; + // Ensure NPC only has one tick at a time. CS_ASSERT(tick == NULL); @@ -675,6 +679,12 @@ void NPC::Disable( bool disable) { + // if not yet enabled, restart the tick + if (disabled && !disable) { + disabled = false; + Tick(); + } + disabled = disable; // Stop the movement @@ -690,6 +700,7 @@ networkmanager->QueueDRData(this); networkmanager->QueueImperviousCommand(GetActor(),true); } + } void NPC::DumpState() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ma...@us...> - 2013-02-13 17:56:58
|
Revision: 8590 http://planeshift.svn.sourceforge.net/planeshift/?rev=8590&view=rev Author: magodra Date: 2013-02-13 17:56:51 +0000 (Wed, 13 Feb 2013) Log Message: ----------- - Added display of current behavior. Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2013-02-10 22:03:15 UTC (rev 8589) +++ trunk/src/npcclient/npc.cpp 2013-02-13 17:56:51 UTC (rev 8590) @@ -261,7 +261,8 @@ } reply.AppendFmt(" Last perception: '%s'\n",last_perception?last_perception->GetName().GetDataSafe():"(None)"); reply.AppendFmt(" Fall counter: %d\n", GetFallCounter()); - reply.AppendFmt(" Brain: %s",GetBrain()->GetName()); + reply.AppendFmt(" Brain: '%s'\n",GetBrain()->GetName()); + reply.AppendFmt(" Current Behavior: '%s'",GetCurrentBehavior()?GetCurrentBehavior()->GetName():"(None)"); return reply; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2013-12-03 22:02:53
|
Revision: 9051 http://sourceforge.net/p/planeshift/code/9051 Author: ralphcampbell Date: 2013-12-03 22:02:50 +0000 (Tue, 03 Dec 2013) Log Message: ----------- Free NPC storedLocates when destroying NPC. Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2013-12-03 21:29:45 UTC (rev 9050) +++ trunk/src/npcclient/npc.cpp 2013-12-03 22:02:50 UTC (rev 9051) @@ -183,6 +183,10 @@ delete bufferMemory; bufferMemory = NULL; } + + LocateHash::GlobalIterator iter = storedLocates.GetIterator(); + while(iter.HasNext()) + delete iter.Next(); } void NPC::Tick() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2013-12-04 01:43:20
|
Revision: 9053 http://sourceforge.net/p/planeshift/code/9053 Author: ralphcampbell Date: 2013-12-04 01:43:17 +0000 (Wed, 04 Dec 2013) Log Message: ----------- Fix a Conditional jump or move depends on uninitialised value(s) error reported by valgrind for class NPC. Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2013-12-03 22:43:09 UTC (rev 9052) +++ trunk/src/npcclient/npc.cpp 2013-12-04 01:43:17 UTC (rev 9053) @@ -114,17 +114,24 @@ -NPC::NPC(psNPCClient* npcclient, NetworkManager* networkmanager, psWorld* world, iEngine* engine, iCollideSystem* cdsys): checked(false), hatelist(npcclient, engine, world), tick(NULL) +NPC::NPC(psNPCClient* npcclient, NetworkManager* networkmanager, psWorld* world, iEngine* engine, iCollideSystem* cdsys) + : checked(false), + hatelist(npcclient, engine, world), + DRcounter(0), + lastDrPosition(0), + lastDrSector(NULL), + lastDrTime(csGetTicks()), + lastDrMoving(false), + lastDrYRot(0.0), + lastDrVel(0), + lastDrAngVel(0), + tick(NULL) { brain=NULL; pid=0; last_update=0; npcActor=NULL; movable=NULL; - DRcounter=0; - lastDrSector = NULL; - lastDrTime = csGetTicks(); - lastDrMoving = false; // Set up the locates activeLocate = new Locate(); @@ -151,6 +158,7 @@ disabled = false; fallCounter = 0; owner_id = 0; + target_id = 0; this->npcclient = npcclient; this->networkmanager = networkmanager; this->world = world; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2013-12-04 06:40:15
|
Revision: 9056 http://sourceforge.net/p/planeshift/code/9056 Author: ralphcampbell Date: 2013-12-04 06:40:12 +0000 (Wed, 04 Dec 2013) Log Message: ----------- Fix memory leak of last_perception Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2013-12-04 03:59:23 UTC (rev 9055) +++ trunk/src/npcclient/npc.cpp 2013-12-04 06:40:12 UTC (rev 9056) @@ -999,6 +999,7 @@ { NPCDebug(this, 5, "ClearState"); brain->ClearState(this); + delete last_perception; last_perception = NULL; hatelist.Clear(); SetAlive(false); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ral...@us...> - 2015-02-24 05:21:11
|
Revision: 9718 http://sourceforge.net/p/planeshift/code/9718 Author: ralphcampbell Date: 2015-02-24 05:21:09 +0000 (Tue, 24 Feb 2015) Log Message: ----------- Pass unsigned PID to format %u instead of PID object. Modified Paths: -------------- trunk/src/npcclient/npc.cpp Modified: trunk/src/npcclient/npc.cpp =================================================================== --- trunk/src/npcclient/npc.cpp 2015-02-22 15:30:40 UTC (rev 9717) +++ trunk/src/npcclient/npc.cpp 2015-02-24 05:21:09 UTC (rev 9718) @@ -540,7 +540,7 @@ bool NPC::Delete() { - int r = db->Command("DELETE FROM sc_npc_definitions where char_id='%u'",pid); + int r = db->Command("DELETE FROM sc_npc_definitions where char_id='%u'",pid.Unbox()); return (r == 1); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |