From: Anders R. <ma...@us...> - 2006-07-28 00:00:07
|
Update of /cvsroot/planeshift/planeshift/src/npcclient In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23305/src/npcclient Modified Files: npcbehave.cpp npcbehave.h npcclient.cpp Log Message: - Added radius to location and have target position vary random within the radius. Index: npcbehave.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/npcclient/npcbehave.cpp,v retrieving revision 1.125 retrieving revision 1.126 diff -C2 -d -r1.125 -r1.126 *** npcbehave.cpp 27 Jul 2006 22:44:25 -0000 1.125 --- npcbehave.cpp 28 Jul 2006 00:00:04 -0000 1.126 *************** *** 1475,1478 **** --- 1475,1480 ---- located_angle = location->rot_angle; located_sector = location->sector; + + AddRandomRange(located_pos,location->radius); if (static_loc) *************** *** 1582,1595 **** } ! void WanderOperation::CalculateTargetPos(csVector3& dest) { float angle = rng.Get()*TWO_PI; ! float range = rng.Get() * active_wp->loc.rot_angle; - dest = active_wp->loc.pos; dest.x += cos(angle)*range; dest.z += sin(angle)*range; } bool WanderOperation::FindNextWaypoint(NPC *npc) { --- 1584,1603 ---- } ! void ScriptOperation::AddRandomRange(csVector3& dest,float radius) { float angle = rng.Get()*TWO_PI; ! float range = rng.Get() * radius; dest.x += cos(angle)*range; dest.z += sin(angle)*range; } + + void WanderOperation::CalculateTargetPos(csVector3& dest) + { + dest = active_wp->loc.pos; + AddRandomRange(dest,active_wp->loc.radius); + } + bool WanderOperation::FindNextWaypoint(NPC *npc) { Index: npcbehave.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/npcclient/npcbehave.h,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** npcbehave.h 27 Jul 2006 22:44:25 -0000 1.58 --- npcbehave.h 28 Jul 2006 00:00:04 -0000 1.59 *************** *** 239,242 **** --- 239,243 ---- float GetVelocity(NPC *npc); + void AddRandomRange(csVector3& dest,float radius); static csRandomGen rng; Index: npcclient.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/npcclient/npcclient.cpp,v retrieving revision 1.100 retrieving revision 1.101 diff -C2 -d -r1.100 -r1.101 *** npcclient.cpp 27 Jul 2006 22:44:25 -0000 1.100 --- npcclient.cpp 28 Jul 2006 00:00:04 -0000 1.101 *************** *** 1305,1316 **** Waypoint *wp; ! CPrintf(CON_CMDOUTPUT, "%9s %-30s %-20s %10s\n", "WP id", "Name", "Position",""); for (wp = iter.First(); wp; wp = ++iter) { if (!pattern || strstr(wp->name.GetDataSafe(),pattern)) { ! CPrintf(CON_CMDOUTPUT, "%9d %-30s (%9.3f,%9.3f,%9.3f, %s) %9.3f\n" , 1,wp->name.GetDataSafe(),wp->loc.pos.x,wp->loc.pos.y,wp->loc.pos.z, ! wp->loc.sectorName.GetDataSafe(),wp->distance); } } --- 1305,1317 ---- Waypoint *wp; ! CPrintf(CON_CMDOUTPUT, "%9s %-30s %-40s %-10s %10s %s\n", "WP id", "Name", "Position","Radius","Dist","PI"); for (wp = iter.First(); wp; wp = ++iter) { if (!pattern || strstr(wp->name.GetDataSafe(),pattern)) { ! CPrintf(CON_CMDOUTPUT, "%9d %-30s (%9.3f,%9.3f,%9.3f, %s) %9.3f %9.3f %s\n" , 1,wp->name.GetDataSafe(),wp->loc.pos.x,wp->loc.pos.y,wp->loc.pos.z, ! wp->loc.sectorName.GetDataSafe(),wp->loc.radius,wp->distance, ! (wp->pi?wp->pi->name.GetDataSafe():"")); } } *************** *** 1333,1339 **** for (int i = 0; i < loc->locs.Length(); i++) { ! CPrintf(CON_CMDOUTPUT, " (%9.3f,%9.3f,%9.3f, %s)\n" , loc->locs[i]->pos.x,loc->locs[i]->pos.y,loc->locs[i]->pos.z, ! loc->locs[i]->sectorName.GetDataSafe()); } --- 1334,1341 ---- for (int i = 0; i < loc->locs.Length(); i++) { ! CPrintf(CON_CMDOUTPUT, " (%9.3f,%9.3f,%9.3f, %s) %9.3f %9.3f\n" , loc->locs[i]->pos.x,loc->locs[i]->pos.y,loc->locs[i]->pos.z, ! loc->locs[i]->sectorName.GetDataSafe(), ! loc->locs[i]->radius,loc->locs[i]->rot_angle); } |