Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 12231
b: refs/heads/master
c: fccc40d
h: refs/heads/2.3
i:
  12229: bcd3322
  12227: 33557f2
  12223: a083e14
  • Loading branch information
perim committed Feb 6, 2011
1 parent c3f81e6 commit 109942f
Show file tree
Hide file tree
Showing 10 changed files with 72 additions and 99 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
refs/heads/2.3: 0881a244edf772758ee1dafa128f50a95bfa1263
refs/heads/3.0: 4546fc624af679cace6f0850df6a965d77d2b584
refs/heads/netplay: ab65cf7953bec9e576e0887b2fb2bc5754a4b411
refs/heads/master: dc2385368c1aa1025b371107bb298fc4b85d9db1
refs/heads/master: fccc40dfb34ca395bcfa308652438b292ff0a99e
4 changes: 2 additions & 2 deletions branches/master/src/droid.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2911,7 +2911,7 @@ bool calcDroidMuzzleLocation(DROID *psDroid, Vector3i *muzzle, int weapon_slot)
* \param aName Template aName
*
*/
DROID_TEMPLATE *GetHumanDroidTemplate(char *aName)
DROID_TEMPLATE *GetHumanDroidTemplate(const char *aName)
{
DROID_TEMPLATE *templatelist, *found = NULL, *foundOtherPlayer = NULL;
int i, playerFound = 0;
Expand Down Expand Up @@ -2959,7 +2959,7 @@ DROID_TEMPLATE *GetHumanDroidTemplate(char *aName)
* \param aName Template aName
*
*/
DROID_TEMPLATE *GetAIDroidTemplate(char *aName)
DROID_TEMPLATE *GetAIDroidTemplate(const char *aName)
{
DROID_TEMPLATE *templatelist, *found = NULL;

Expand Down
7 changes: 2 additions & 5 deletions branches/master/src/droid.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,8 @@ bool calcDroidMuzzleLocation(DROID *psDroid, Vector3i *muzzle, int weapon_slot);
bool calcDroidMuzzleBaseLocation(DROID *psDroid, Vector3i *muzzle, int weapon_slot);

/* gets a template from its aName (when pName is unknown) */
extern DROID_TEMPLATE *GetHumanDroidTemplate(char *aName);
extern DROID_TEMPLATE *GetAIDroidTemplate(char *aName);
extern DROID_TEMPLATE *GetHumanDroidTemplate(const char *aName);
extern DROID_TEMPLATE *GetAIDroidTemplate(const char *aName);
/* gets a template from its name - relies on the name being unique */
extern DROID_TEMPLATE * getTemplateFromUniqueName(const char *pName, unsigned int player);
/* gets a template from its name - relies on the name being unique */
Expand All @@ -241,9 +241,6 @@ extern const char *droidGetName(const DROID *psDroid);
// Set a droid's name.
extern void droidSetName(DROID *psDroid, const char *pName);

// Set a templates name.
extern void templateSetName(DROID_TEMPLATE *psTemplate,char *pName);

// returns true when no droid on x,y square.
extern BOOL noDroid (UDWORD x, UDWORD y); // true if no droid at x,y
// returns an x/y coord to place a droid
Expand Down
29 changes: 15 additions & 14 deletions branches/master/src/multibot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,8 @@ BOOL recvDroidSecondary(NETQUEUE queue)
NETenum(&state);

// If we can not find the droid should we not ask for it?
if (!IdToDroid(droid, player, &psDroid))
psDroid = IdToDroid(droid, player);
if (!psDroid)
{
NETend();
return false;
Expand Down Expand Up @@ -218,14 +219,16 @@ BOOL recvDroidEmbark(NETQUEUE queue)
NETuint32_t(&transporterID);

// we have to find the droid on our (local) list first.
if (!IdToDroid(droidID, player, &psDroid))
psDroid = IdToDroid(droidID, player);
if (!psDroid)
{
NETend();
// Possible it already died? (sync error?)
debug(LOG_WARNING, "player's %d droid %d wasn't found?", player,droidID);
return false;
}
if (!IdToDroid(transporterID, player, &psTransporterDroid))
psTransporterDroid = IdToDroid(transporterID, player);
if (!psTransporterDroid)
{
NETend();
// Possible it already died? (sync error?)
Expand Down Expand Up @@ -310,7 +313,8 @@ BOOL recvDroidDisEmbark(NETQUEUE queue)
NETend();

// find the transporter first
if (!IdToDroid(transporterID, player, &psTransporterDroid))
psTransporterDroid = IdToDroid(transporterID, player);
if (!psTransporterDroid)
{
// Possible it already died? (sync error?)
debug(LOG_WARNING, "player's %d transport droid %d wasn't found?", player, transporterID);
Expand Down Expand Up @@ -676,8 +680,8 @@ BOOL recvDroidInfo(NETQUEUE queue)
NETuint32_t(&deltaDroidId);
info.droidId += deltaDroidId;

DROID *psDroid = NULL;
if (!IdToDroid(info.droidId, ANYPLAYER, &psDroid))
DROID *psDroid = IdToDroid(info.droidId, ANYPLAYER);
if (!psDroid)
{
debug(LOG_NEVER, "Packet from %d refers to non-existent droid %u, [%s : p%d]",
queue.index, info.droidId, isHumanPlayer(info.player) ? "Human" : "AI", info.player);
Expand Down Expand Up @@ -734,21 +738,17 @@ static BASE_OBJECT *processDroidTarget(OBJECT_TYPE desttype, uint32_t destid)
else
{
BASE_OBJECT *psObj = NULL;
DROID *pD;

switch (desttype)
{
case OBJ_DROID:
if (IdToDroid(destid, ANYPLAYER, &pD))
{
psObj = (BASE_OBJECT*)pD;
}
psObj = IdToDroid(destid, ANYPLAYER);
break;
case OBJ_STRUCTURE:
psObj = (BASE_OBJECT*)IdToStruct(destid,ANYPLAYER);
psObj = IdToStruct(destid, ANYPLAYER);
break;
case OBJ_FEATURE:
psObj = (BASE_OBJECT*)IdToFeature(destid,ANYPLAYER);
psObj = IdToFeature(destid, ANYPLAYER);
break;

// We should not get this!
Expand Down Expand Up @@ -804,7 +804,8 @@ BOOL recvDestroyDroid(NETQUEUE queue)

// Retrieve the droid
NETuint32_t(&id);
if (!IdToDroid(id, ANYPLAYER, &psDroid))
psDroid = IdToDroid(id, ANYPLAYER);
if (!psDroid)
{
debug(LOG_DEATH, "droid %d on request from player %d can't be found? Must be dead already?",
id, queue.index );
Expand Down
4 changes: 2 additions & 2 deletions branches/master/src/multigifts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -182,9 +182,9 @@ void giftRadar(uint8_t from, uint8_t to, BOOL send)
// \param to :player that should be getting the droid
static void recvGiftDroids(uint8_t from, uint8_t to, uint32_t droidID)
{
DROID *psDroid;
DROID *psDroid = IdToDroid(droidID, from);

if (IdToDroid(droidID, from, &psDroid))
if (psDroid)
{
syncDebugDroid(psDroid, '<');
giftSingleDroid(psDroid, to);
Expand Down
106 changes: 40 additions & 66 deletions branches/master/src/multiplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -290,110 +290,82 @@ BOOL multiPlayerLoop(void)
// quikie functions.

// to get droids ...
BOOL IdToDroid(UDWORD id, UDWORD player, DROID **psDroid)
DROID *IdToDroid(UDWORD id, UDWORD player)
{
UDWORD i;
DROID *d;

if(player == ANYPLAYER)
if (player == ANYPLAYER)
{
for(i=0;i<MAX_PLAYERS;i++) // find the droid to order form them all
for (int i = 0; i < MAX_PLAYERS; i++)
{
d = apsDroidLists[i];
while((d != NULL )&&(d->id !=id) )d=d->psNext;
if(d)
for (DROID *d = apsDroidLists[i]; d; d = d->psNext)
{
*psDroid = d;
return true;
if (d->id == id)
{
return d;
}
}
}
return false;
}
else // find the droid, given player
else if (player < MAX_PLAYERS)
{
if (player >= MAX_PLAYERS)
for (DROID *d = apsDroidLists[player]; d; d = d->psNext)
{
debug(LOG_FEATURE, "Feature detected");
// feature hack, player = PLAYER_FEATURE are features
return false;
}
d = apsDroidLists[player];
while( (d != NULL ) && (d->id !=id))d=d->psNext;
if(d)
{
*psDroid = d;
return true;
if (d->id == id)
{
return d;
}
}
return false;
}
return NULL;
}

// ////////////////////////////////////////////////////////////////////////////
// find a structure
STRUCTURE *IdToStruct(UDWORD id,UDWORD player)
STRUCTURE *IdToStruct(UDWORD id, UDWORD player)
{
STRUCTURE *psStr = NULL;
UDWORD i;

if(player == ANYPLAYER)
if (player == ANYPLAYER)
{
for(i=0;i<MAX_PLAYERS;i++)
for (int i = 0; i < MAX_PLAYERS; i++)
{
for (psStr=apsStructLists[i];( (psStr != NULL) && (psStr->id != id)); psStr=psStr->psNext) {}
if(psStr)
for (STRUCTURE *d = apsStructLists[i]; d; d = d->psNext)
{
return psStr;
if (d->id == id)
{
return d;
}
}
}
}
else
else if (player < MAX_PLAYERS)
{
if (player >= MAX_PLAYERS)
for (STRUCTURE *d = apsStructLists[player]; d; d = d->psNext)
{
debug(LOG_FEATURE, "Feature detected");
// feature hack, player = PLAYER_FEATURE are features
return NULL;
if (d->id == id)
{
return d;
}
}
for (psStr=apsStructLists[player];((psStr != NULL )&&(psStr->id != id) );psStr=psStr->psNext) {}
}
return psStr;
return NULL;
}

// ////////////////////////////////////////////////////////////////////////////
// find a feature
FEATURE *IdToFeature(UDWORD id,UDWORD player)
FEATURE *IdToFeature(UDWORD id, UDWORD player)
{
FEATURE *psF =NULL;
UDWORD i;

STATIC_ASSERT(MAX_PLAYERS + 2 < ANYPLAYER);
if(player == ANYPLAYER)
{
for(i=0;i<MAX_PLAYERS;i++)
{
for(psF=apsFeatureLists[i];( (psF != NULL) && (psF->id != id)); psF=psF->psNext) {}
if(psF)
{
return psF;
}
}
}
else
(void)player; // unused, all features go into player 0
for (FEATURE *d = apsFeatureLists[0]; d; d = d->psNext)
{
if (player >= MAX_PLAYERS)
if (d->id == id)
{
debug(LOG_FEATURE, "Feature detected");
// feature hack, player = PLAYER_FEATURE are features - but we're in a function called IdTo **Feature**...
return NULL;
return d;
}
for(psF=apsFeatureLists[player];((psF != NULL )&&(psF->id != id) );psF=psF->psNext) {}
}
return psF;
return NULL;
}

// ////////////////////////////////////////////////////////////////////////////

DROID_TEMPLATE *IdToTemplate(UDWORD tempId,UDWORD player)
DROID_TEMPLATE *IdToTemplate(UDWORD tempId, UDWORD player)
{
DROID_TEMPLATE *psTempl = NULL;
UDWORD i;
Expand Down Expand Up @@ -428,7 +400,9 @@ BASE_OBJECT *IdToPointer(UDWORD id,UDWORD player)
STRUCTURE *pS;
FEATURE *pF;
// droids.
if (IdToDroid(id,player,&pD))

pD = IdToDroid(id, player);
if (pD)
{
return (BASE_OBJECT*)pD;
}
Expand Down
2 changes: 1 addition & 1 deletion branches/master/src/multiplay.h
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ extern UBYTE bDisplayMultiJoiningStatus; // draw load progress?

extern WZ_DECL_WARN_UNUSED_RESULT BASE_OBJECT *IdToPointer(UDWORD id,UDWORD player);
extern WZ_DECL_WARN_UNUSED_RESULT STRUCTURE *IdToStruct(UDWORD id,UDWORD player);
extern WZ_DECL_WARN_UNUSED_RESULT BOOL IdToDroid(UDWORD id, UDWORD player, DROID **psDroid);
extern WZ_DECL_WARN_UNUSED_RESULT DROID *IdToDroid(UDWORD id, UDWORD player);
extern WZ_DECL_WARN_UNUSED_RESULT FEATURE *IdToFeature(UDWORD id,UDWORD player);
extern WZ_DECL_WARN_UNUSED_RESULT DROID_TEMPLATE *IdToTemplate(UDWORD tempId,UDWORD player);

Expand Down
4 changes: 2 additions & 2 deletions branches/master/src/multistruct.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,12 +173,12 @@ BOOL recvDemolishFinished(NETQUEUE queue)
NETend();

psStruct = IdToStruct(structID, ANYPLAYER);
if (!IdToDroid(droidID, ANYPLAYER, &psDroid))
psDroid = IdToDroid(droidID, ANYPLAYER);
if (!psDroid)
{
debug(LOG_ERROR, "recvDemolishFinished: Packet with bad droid ID received. Discarding!");
return false;
}

if (psStruct)
{
// Demolish it
Expand Down
3 changes: 2 additions & 1 deletion branches/master/src/multisync.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,8 @@ BOOL recvDroidCheck(NETQUEUE queue)
NETauto(&pc);

// Find the droid in question
if (!IdToDroid(pc.droidID, pc.player, &pD))
pD = IdToDroid(pc.droidID, pc.player);
if (!pD)
{
NETlogEntry("Recvd Unknown droid info. val=player", SYNC_FLAG, pc.player);
debug(LOG_SYNC, "Received checking info for an unknown (as yet) droid. player:%d ref:%d", pc.player, pc.droidID);
Expand Down
10 changes: 5 additions & 5 deletions branches/master/win32/rules.mk
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
all: build

$(TOPDIR)/downloads/$(PKG_SOURCE):
@if [ ! -d "$(TOPDIR)/downloads" ] ; then \
echo mkdir -p $(TOPDIR)/downloads ; \
mkdir -p $(TOPDIR)/downloads || exit ; \
$(DOWNLOADS)/$(PKG_SOURCE):
@if [ ! -d "$(DOWNLOADS)" ] ; then \
echo mkdir -p $(DOWNLOADS) ; \
mkdir -p $(DOWNLOADS) || exit ; \
fi
$(TOPDIR)/download.pl $(TOPDIR)/downloads "$(PKG_SOURCE)" "$(PKG_MD5SUM)" $(PKG_SOURCE_URL)
$(TOPDIR)/download.pl $(DOWNLOADS) "$(PKG_SOURCE)" "$(PKG_MD5SUM)" $(PKG_SOURCE_URL)

.PHONY: all build clean

0 comments on commit 109942f

Please sign in to comment.