REDIVIVUS

Proposals / #819

Name PETS_FreeOrKillPetList's nParam1 (bIsHireable)

applied · by Captain-Fwiffo · submitted 2026-11-02, applied 2026-11-02

Ghidra v1809 · 6c26878

nParam1 is a boolean selecting the hireling path: when 0 the loop calls KillHandlerPet; when nonzero it locates each pet monster, broadcasts the 0x7A summon log, removes it from the room and either frees it or runs the Death transition (with the merc revive-cost packet). Both callers build it as SETZ of a CMP against 7, which is PETTYPE_hireable: FreePets at 0x00574745-48 (CMP ESI,7 / SETZ CL, pushed as ECX) and PETS_FreeAllPetsByType at 0x00575c35-38. That ESI holds the pet type in both callers was inferred from the compare with the enum value, not traced from its definition. Rename only; the type stays int32_t. nParam2 is left alone (its meaning differs per caller).

Changes 1, applied together

  1. Rename variable win 0x00574570 Stack[0xc]

    namenParam1→bIsHireable