Skip to content

Commit

Permalink
Fixed some grave-tracking inconsistencies.
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonrohrer authored and risvh committed Aug 13, 2023
1 parent f19a66c commit e621b6a
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions server/server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5837,7 +5837,13 @@ static void swapHeldWithGround(
inPlayer->heldTransitionSourceID = -1;


if( gravePlayerID > 0 ) {
inPlayer->heldGravePlayerID = 0;

if( inPlayer->holdingID > 0 &&
strstr( getObject( inPlayer->holdingID )->description,
"origGrave" ) != NULL &&
gravePlayerID > 0 ) {

inPlayer->heldGraveOriginX = inMapX;
inPlayer->heldGraveOriginY = inMapY;
inPlayer->heldGravePlayerID = gravePlayerID;
Expand Down Expand Up @@ -9443,14 +9449,23 @@ static void setHeldGraveOrigin( LiveObject *inPlayer, int inX, int inY,
// make sure that that there was a grave there before
int gravePlayerID = getGravePlayerID( inX, inY );

// clear it
inPlayer->heldGravePlayerID = 0;


if( gravePlayerID > 0 ) {

// player action actually picked up this grave

inPlayer->heldGraveOriginX = inX;
inPlayer->heldGraveOriginY = inY;

inPlayer->heldGravePlayerID = getGravePlayerID( inX, inY );
if( inPlayer->holdingID > 0 &&
strstr( getObject( inPlayer->holdingID )->description,
"origGrave" ) != NULL ) {

inPlayer->heldGraveOriginX = inX;
inPlayer->heldGraveOriginY = inY;

inPlayer->heldGravePlayerID = getGravePlayerID( inX, inY );
}

// clear it from ground
setGravePlayerID( inX, inY, 0 );
Expand Down

0 comments on commit e621b6a

Please sign in to comment.