PennMUSH Community

Changeset 1154

Show
Ignore:
Timestamp:
11/20/07 09:54:10 (9 months ago)
Author:
javelin
Message:

Complete fix to #7489

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.8.2/branches/devel/src/move.c

    r1153 r1154  
    101101        /* The tricky bit here is that we only care about the zone of 
    102102         * the outermost contents */ 
    103         if (GoodObject(absold) && GoodObject(Zone(absold)) 
    104             && (Zone(absloc) != Zone(absold))) 
     103        if (GoodObject(absold) && GoodObject(Zone(absold)) && 
     104            (!GoodObject(absloc) || !GoodObject(Zone(absloc)) || 
     105             (Zone(absloc) != Zone(absold)))) 
    105106          did_it_interact(what, Zone(absold), "ZLEAVE", NULL, "OZLEAVE", NULL, 
    106107                          "AZLEAVE", old, NA_INTER_SEE); 
     
    112113                          NA_INTER_SEE); 
    113114        /* If the player is entering a new zone, do zone messages */ 
    114         if (!GoodObject(absold) 
    115             || (GoodObject(absloc) && 
    116                 GoodObject(Zone(absloc)) && (Zone(absloc) != Zone(absold)))) 
     115        if (GoodObject(absloc) && GoodObject(Zone(absloc)) && 
     116            (!GoodObject(absold) || !GoodObject(Zone(absold)) || 
     117             (Zone(absloc) != Zone(absold)))) 
    117118          did_it_interact(what, Zone(absloc), "ZENTER", NULL, "OZENTER", NULL, 
    118119                          "AZENTER", where, NA_INTER_SEE); 
    119         did_it_interact(what, where, "ENTER", NULL, "OENTER", T("has arrived."), 
    120                         "AENTER", where, NA_INTER_PRESENCE); 
     120        did_it_interact(what, where, "ENTER", NULL, "OENTER", 
     121                        T("has arrived."), "AENTER", where, NA_INTER_PRESENCE); 
    121122      } else { 
    122123        /* non-listeners only trigger the actions not the messages */ 
    123124        did_it(what, old, NULL, NULL, NULL, NULL, "ALEAVE", old); 
    124         if (GoodObject(absold) && GoodObject(Zone(absold)) 
    125             && (Zone(absloc) != Zone(absold))) 
     125        if (GoodObject(absold) && GoodObject(Zone(absold)) && 
     126            (!GoodObject(absloc) || !GoodObject(Zone(absloc)) || 
     127             (Zone(absloc) != Zone(absold)))) 
    126128          did_it(what, Zone(absold), NULL, NULL, NULL, NULL, "AZLEAVE", old); 
    127         if (!GoodObject(absold) 
    128             || (GoodObject(Zone(absloc)) && (Zone(absloc) != Zone(absold)))) 
     129        if (GoodObject(absloc) && GoodObject(Zone(absloc)) && 
     130            (!GoodObject(absold) || !GoodObject(Zone(absold)) || 
     131             (Zone(absloc) != Zone(absold)))) 
    129132          did_it(what, Zone(absloc), NULL, NULL, NULL, NULL, "AZENTER", where); 
    130133        did_it(what, where, NULL, NULL, NULL, NULL, "AENTER", where); 
     
    132135    } 
    133136  if (!nomovemsgs) 
    134     did_it_interact(what, what, "MOVE", NULL, "OMOVE", NULL, "AMOVE", where, 
    135                     NA_INTER_SEE); 
     137    did_it_interact(what, what, "MOVE", NULL, "OMOVE", NULL, 
     138                    "AMOVE", where, NA_INTER_SEE); 
    136139} 
    137140