From: Keith F. <ven...@us...> - 2003-10-19 13:21:31
|
Update of /cvsroot/planeshift/planeshift/src/npcclient In directory sc8-pr-cvs1:/tmp/cvs-serv29151 Modified Files: npcclient.cpp npcbehave.h npcbehave.cpp npc.cpp Log Message: Made several minor fixes to superclient so that dynamic guard behavior works again. Also fixed crash on quit cmd in superclient. Index: npcclient.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/npcclient/npcclient.cpp,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** npcclient.cpp 20 Sep 2003 07:39:26 -0000 1.19 --- npcclient.cpp 19 Oct 2003 07:59:31 -0000 1.20 *************** *** 47,50 **** --- 47,52 ---- #include "pathmanager.h" + bool running; + class psNPCTick : public psGameEvent { *************** *** 62,69 **** --- 64,73 ---- world = NULL; eventmanager = NULL; + running = true; } psNPCClient::~psNPCClient() { + running = false; } *************** *** 575,579 **** void psNPCTick::Trigger() { ! client->Tick(); } --- 579,584 ---- void psNPCTick::Trigger() { ! if (running) ! client->Tick(); } Index: npcbehave.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/npcclient/npcbehave.h,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** npcbehave.h 20 Sep 2003 07:39:26 -0000 1.20 --- npcbehave.h 19 Oct 2003 07:59:31 -0000 1.21 *************** *** 374,377 **** --- 374,378 ---- virtual bool Run(NPC *npc,EventManager *eventmgr); + virtual void Advance(float timedelta,NPC *npc,EventManager *eventmgr); virtual bool Load(iDocumentNode *node); virtual ScriptOperation *MakeCopy(); *************** *** 505,508 **** --- 506,510 ---- virtual bool Run(NPC *npc,EventManager *eventmgr); virtual bool Load(iDocumentNode *node); + virtual void Advance(float timedelta,NPC *npc,EventManager *eventmgr); virtual ScriptOperation *MakeCopy(); }; Index: npcbehave.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/npcclient/npcbehave.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** npcbehave.cpp 25 Sep 2003 23:56:54 -0000 1.26 --- npcbehave.cpp 19 Oct 2003 07:59:31 -0000 1.27 *************** *** 81,86 **** --- 81,91 ---- if (node->GetAttributeValueAsFloat("ang_vel") ) ang_vel = node->GetAttributeValueAsFloat("ang_vel"); + else + ang_vel = 999; + if (node->GetAttributeValueAsFloat("vel") ) vel = node->GetAttributeValueAsFloat("vel"); + else + vel = 999; // Now read in behaviors and reactions *************** *** 879,883 **** bool RotateOperation::Run(NPC *npc,EventManager *eventmgr) { ! npc->Printf("RotateOp "); if (op_type == this->ROT_RANDOM) --- 884,888 ---- bool RotateOperation::Run(NPC *npc,EventManager *eventmgr) { ! npc->Printf(">>>RotateOp "); if (op_type == this->ROT_RANDOM) *************** *** 1067,1071 **** bool LocateOperation::Run(NPC *npc,EventManager *eventmgr) { ! npc->Printf("LocateOp "); if (object == "perception") --- 1072,1076 ---- bool LocateOperation::Run(NPC *npc,EventManager *eventmgr) { ! npc->Printf(">>>LocateOp "); if (object == "perception") *************** *** 1093,1096 **** --- 1098,1105 ---- located = true; // if it is a static location, we only have to do this locate once, and save the answer } + else + { + npc->Printf("remembered location from last time\n"); + } // Save on npc so other operations can refer to value *************** *** 1118,1122 **** bool NavigateOperation::Run(NPC *npc,EventManager *eventmgr) { ! // printf("NavigateOp "); csVector3 dest; --- 1127,1131 ---- bool NavigateOperation::Run(NPC *npc,EventManager *eventmgr) { ! npc->Printf(">>>NavigateOp "); csVector3 dest; *************** *** 1124,1128 **** npc->GetActiveLocate(dest,rot); ! npc->Printf("(%1.2f,%1.2f,%1.2f) at %1.2f m/sec.\n",dest.x,dest.y,dest.z,vel); StartMoveTo(npc,eventmgr,dest,GetVelocity(npc),action); --- 1133,1137 ---- npc->GetActiveLocate(dest,rot); ! npc->Printf("Located (%1.2f,%1.2f,%1.2f) at %1.2f m/sec.\n",dest.x,dest.y,dest.z, GetVelocity(npc) ); StartMoveTo(npc,eventmgr,dest,GetVelocity(npc),action); *************** *** 1130,1136 **** } bool NavigateOperation::CompleteOperation(NPC *npc,EventManager *eventmgr) { ! // printf("Navigate completed. Stopping now.\n"); // Stop the movement --- 1139,1150 ---- } + void NavigateOperation::Advance(float timedelta,NPC *npc,EventManager *eventmgr) + { + npc->Printf("NavigationOp advanced\n"); + } + bool NavigateOperation::CompleteOperation(NPC *npc,EventManager *eventmgr) { ! npc->Printf("Navigate completed. Stopping now.\n"); // Stop the movement *************** *** 1313,1316 **** --- 1327,1335 ---- // Check hate list to make sure we are still attacking the right person iCelEntity *ent = npc->GetMostHated(range); + if (!ent) + { + InterruptOperation(npc,eventmgr); + return; + } if (ent != attacked_ent) { *************** *** 1390,1394 **** bool WaitOperation::Run(NPC *npc,EventManager *eventmgr) { ! // printf("WaitOp "); csRef<iPcMesh> pcmesh = CEL_QUERY_PROPCLASS(npc->GetEntity()->GetPropertyClassList(), --- 1409,1413 ---- bool WaitOperation::Run(NPC *npc,EventManager *eventmgr) { ! npc->Printf(">>>WaitOp\n"); csRef<iPcMesh> pcmesh = CEL_QUERY_PROPCLASS(npc->GetEntity()->GetPropertyClassList(), *************** *** 1410,1413 **** --- 1429,1437 ---- } + void WaitOperation::Advance(float timedelta,NPC *npc,EventManager *eventmgr) + { + npc->Printf("waiting...\n"); + } + bool DropOperation::Load(iDocumentNode *node) { *************** *** 1555,1558 **** --- 1579,1585 ---- pcmesh->MoveMesh(NULL,pos); + + if (pos.z > 1000 || pos.z < -1000) + pos.z = pos.z; } Index: npc.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/npcclient/npc.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** npc.cpp 20 Sep 2003 07:39:25 -0000 1.9 --- npc.cpp 19 Oct 2003 07:59:31 -0000 1.10 *************** *** 136,140 **** void NPC::DumpBehaviorList() { ! brain->DumpBehaviorList(); } --- 136,141 ---- void NPC::DumpBehaviorList() { ! if (is_debugging) ! brain->DumpBehaviorList(); } |