Removes waitingroom check for Maya Purple hackfix (#5269)

* Fixes #3102 and fixes #3645.
* Removes the waitingroom check for the Maya Purple card hackfix.
Thanks to @sader1992 and @Badarosk0!
This commit is contained in:
Aleos 2020-07-31 07:54:31 -04:00 committed by GitHub
parent b211d84409
commit 1c6270f96a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1560,6 +1560,26 @@ void clif_weather(int16 m)
}
mapit_free(iter);
}
/**
* Hide a NPC from the effects of Maya Purple card.
* @param bl: Block data
* @return True if NPC is disabled or false otherwise
*/
static inline bool clif_npc_mayapurple(block_list *bl) {
nullpo_retr(false, bl);
if (bl->type == BL_NPC) {
npc_data *nd = map_id2nd(bl->id);
// TODO: Confirm if waitingroom cause any special cases
if (/* nd->chat_id == 0 && */ nd->sc.option & OPTION_INVISIBLE)
return true;
}
return false;
}
/**
* Main function to spawn a unit on the client (player/mob/pet/etc)
**/
@ -1570,10 +1590,8 @@ int clif_spawn( struct block_list *bl, bool walking ){
if( !vd || vd->class_ == JT_INVISIBLE )
return 0;
/**
* Hide NPC from maya purple card.
**/
if(bl->type == BL_NPC && !((TBL_NPC*)bl)->chat_id && (((TBL_NPC*)bl)->sc.option&OPTION_INVISIBLE))
// Hide NPC from Maya Purple card
if (clif_npc_mayapurple(bl))
return 0;
if( bl->type == BL_NPC && !vd->dead_sit ){
@ -1916,10 +1934,8 @@ void clif_move(struct unit_data *ud)
return;
}
/**
* Hide NPC from maya purple card.
**/
if(bl->type == BL_NPC && !((TBL_NPC*)bl)->chat_id && (((TBL_NPC*)bl)->sc.option&OPTION_INVISIBLE))
// Hide NPC from Maya Purple card
if (clif_npc_mayapurple(bl))
return;
if (ud->state.speed_changed) {
@ -4717,10 +4733,8 @@ void clif_getareachar_unit( struct map_session_data* sd,struct block_list *bl ){
if (!vd || vd->class_ == JT_INVISIBLE)
return;
/**
* Hide NPC from maya purple card.
**/
if(bl->type == BL_NPC && !((TBL_NPC*)bl)->chat_id && (((TBL_NPC*)bl)->sc.option&OPTION_INVISIBLE))
// Hide NPC from Maya Purple card
if (clif_npc_mayapurple(bl))
return;
ud = unit_bl2ud(bl);