rendered paste body$ cvs diff include/bzfsAPI.h src/bzfs/bzfsAPI.cxx src/bzfs/WorldWeapons.{cxx,h}
Index: include/bzfsAPI.h
===================================================================
RCS file: /cvsroot/bzflag/bzflag/include/bzfsAPI.h,v
retrieving revision 1.135
diff -r1.135 bzfsAPI.h
982a983
> BZF_API int bz_fireWorldGM ( int targetPlayerID, float lifetime, float *pos, float tilt, float direction, float dt);
1155c1156
< typedef enum
---
> typedef enum
1184c1185
< void update ( void );
---
> void update ( void );
1342c1343
< typedef struct
---
> typedef struct
1357c1358
< typedef struct
---
> typedef struct
1371c1372
< typedef struct
---
> typedef struct
1381c1382
< typedef struct
---
> typedef struct
1405c1406
< typedef struct
---
> typedef struct
1422c1423
< bz_ePlayerStatus status;
---
> bz_ePlayerStatus status;
1444c1445
< typedef enum
---
> typedef enum
Index: src/bzfs/bzfsAPI.cxx
===================================================================
RCS file: /cvsroot/bzflag/bzflag/src/bzfs/bzfsAPI.cxx,v
retrieving revision 2.137
diff -r2.137 bzfsAPI.cxx
1094a1095,1116
> BZF_API int bz_fireWorldGM ( int targetPlayerID, float lifetime, float *pos, float tilt, float direction, float dt)
> {
> const char* flagType = "GM";
>
> if (!pos || !flagType)
> return false;
>
> FlagTypeMap &flagMap = FlagType::getFlagMap();
> if (flagMap.find(std::string(flagType)) == flagMap.end())
> return false;
>
> FlagType *flag = flagMap.find(std::string(flagType))->second;
>
> PlayerId player = ServerPlayer;
>
> int shotID = world->getWorldWeapons().getNewWorldShotID();
>
> fireWorldGM(flag,targetPlayerID, lifetime,player,pos,tilt,direction, shotID, dt);
>
> return shotID;
> }
>
1346c1368
< if (ifs.fail())
---
> if (ifs.fail())
1351c1373
< while (std::getline(ifs, line))
---
> while (std::getline(ifs, line))
1551c1573
< }
---
> }
2495,2496c2517,2518
<
< switch(targetTeam)
---
>
> switch(targetTeam)
Index: src/bzfs/WorldWeapons.cxx
===================================================================
RCS file: /cvsroot/bzflag/bzflag/src/bzfs/WorldWeapons.cxx,v
retrieving revision 2.32
diff -r2.32 WorldWeapons.cxx
68a69,100
> static int fireWorldGMReal ( FlagType* type, PlayerId targetPlayerID, float
> lifetime, PlayerId player, float *pos, float tilt, float dir, int shotID,
> float dt)
> {
>
> void *buf, *bufStart = getDirectMessageBuffer();
>
> FiringInfo firingInfo;
> firingInfo.timeSent = (float)TimeKeeper::getCurrent().getSeconds();
> firingInfo.flagType = type;
> firingInfo.lifetime = lifetime;
> firingInfo.shot.player = player;
> memmove(firingInfo.shot.pos, pos, 3 * sizeof(float));
> const float shotSpeed = BZDB.eval(StateDatabase::BZDB_SHOTSPEED);
> const float tiltFactor = cosf(tilt);
> firingInfo.shot.vel[0] = shotSpeed * tiltFactor * cosf(dir);
> firingInfo.shot.vel[1] = shotSpeed * tiltFactor * sinf(dir);
> firingInfo.shot.vel[2] = shotSpeed * sinf(tilt);
> firingInfo.shot.id = shotID;
> firingInfo.shot.dt = dt;
>
> firingInfo.shot.team = RogueTeam;
>
> buf = firingInfo.pack(bufStart);
>
> if (BZDB.isTrue(StateDatabase::BZDB_WEAPONS)) {
> broadcastMessage(MsgShotBegin, (char *)buf - (char *)bufStart,
> bufStart);
> }
>
> // Target the gm.
> // construct and send packet
69a102,111
> char packet[ShotUpdatePLen + PlayerIdPLen];
> buf = (void*)packet;
> buf = firingInfo.shot.pack(buf);
> buf = nboPackUByte(buf, targetPlayerID);
> if (BZDB.isTrue(StateDatabase::BZDB_WEAPONS)) {
> broadcastMessage(MsgGMUpdate, sizeof(packet), packet);
> }
>
> return shotID;
> }
259a302,308
> int fireWorldGM(FlagType* type, PlayerId targetPlayerID, float lifetime,
> PlayerId player, float *pos, float tilt, float direction, int
> shotID, float dt)
> {
> return fireWorldGMReal(type, targetPlayerID, lifetime, player, pos, tilt,
> direction, shotID, dt);
> }
Index: src/bzfs/WorldWeapons.h
===================================================================
RCS file: /cvsroot/bzflag/bzflag/src/bzfs/WorldWeapons.h,v
retrieving revision 2.15
diff -r2.15 WorldWeapons.h
92a93,94
> int fireWorldGM(FlagType* type, PlayerId targetPlayerID, float lifetime, PlayerId player, float *pos, float tilt, float direction, int shotID, float dt);
>