Browse Source

[hellfire] SpawnLoot

pull/876/head
Anders Jenbo 6 years ago
parent
commit
e3e7451a84
  1. 39
      Source/monster.cpp
  2. 2
      Source/monster.h
  3. 2
      Source/towners.cpp
  4. 2
      comparer-config/hellfire.toml

39
Source/monster.cpp

@ -1787,9 +1787,44 @@ void M_DiabloDeath(int i, BOOL sendmsg)
Monst->_mVar6 = (int)((k - (Monst->_my << 16)) / (double)dist);
}
#ifdef HELLFIRE
void SpawnLoot(int i, BOOL sendmsg)
{
int nSFX;
MonsterStruct *Monst;
void M_DefilerDeath(int i, BOOL sendmsg) {
Monst = &monster[i];
if (QuestStatus(QTYPE_GARB) && Monst->mName == UniqMonst[UMT_GARBUD].mName) {
CreateTypeItem(Monst->_mx + 1, Monst->_my + 1, TRUE, ITYPE_MACE, IMISC_NONE, TRUE, FALSE);
} else if (Monst->mName == UniqMonst[UMT_DEFILER].mName) {
if (effect_is_playing(USFX_DEFILER8))
sfx_stop();
quests[QTYPE_DEFILER]._qlog = 0;
SpawnMapOfDoom(Monst->_mx, Monst->_my);
} else if (Monst->mName == UniqMonst[UMT_HORKDMN].mName) {
if (UseTheoQuest) {
SpawnTheodore(Monst->_mx, Monst->_my);
} else {
CreateAmulet(Monst->_mx, Monst->_my, 13, FALSE, TRUE);
}
} else if (Monst->MType->mtype == MT_HORKSPWN) {
} else if (Monst->MType->mtype == MT_NAKRUL) {
nSFX = IsUberRoomOpened ? USFX_NAKRUL4 : USFX_NAKRUL5;
if (UseCowFarmer)
nSFX = USFX_NAKRUL6;
if (effect_is_playing(nSFX))
sfx_stop();
quests[QTYPE_NAKRUL]._qlog = 0;
UberDiabloMonsterIndex = -2;
CreateMagicWeapon(Monst->_mx, Monst->_my, ITYPE_SWORD, ICURS_GREAT_SWORD, FALSE, TRUE);
CreateMagicWeapon(Monst->_mx, Monst->_my, ITYPE_STAFF, ICURS_WAR_STAFF, FALSE, TRUE);
CreateMagicWeapon(Monst->_mx, Monst->_my, ITYPE_BOW, ICURS_LONG_WAR_BOW, FALSE, TRUE);
CreateSpellBook(Monst->_mx, Monst->_my, SPL_APOCA, FALSE, TRUE);
} else if (i > 3) {
SpawnItem(i, Monst->_mx, Monst->_my, sendmsg);
}
}
#endif
void M2MStartHit(int mid, int i, int dam)
{
@ -1866,7 +1901,7 @@ void MonstStartKill(int i, int pnum, BOOL sendmsg)
Monst->_mhitpoints = 0;
SetRndSeed(Monst->_mRndSeed);
#ifdef HELLFIRE
M_DefilerDeath(i, sendmsg);
SpawnLoot(i, sendmsg);
#else
if (QuestStatus(QTYPE_GARB) && Monst->mName == UniqMonst[UMT_GARBUD].mName) {
CreateTypeItem(Monst->_mx + 1, Monst->_my + 1, TRUE, ITYPE_MACE, IMISC_NONE, TRUE, FALSE);

2
Source/monster.h

@ -62,7 +62,7 @@ void M_GetKnockback(int i);
void M_StartHit(int i, int pnum, int dam);
void M_DiabloDeath(int i, BOOL sendmsg);
#ifdef HELLFIRE
void M_DefilerDeath(int i, BOOL sendmsg);
void SpawnLoot(int i, BOOL sendmsg);
#endif
void M2MStartHit(int mid, int i, int dam);
void MonstStartKill(int i, int pnum, BOOL sendmsg);

2
Source/towners.cpp

@ -1143,7 +1143,7 @@ void TalkToTowner(int p, int t)
break;
case 3:
qt = QUEST_FARMER4;
items_427DC6(IDI_AURIC, towner[t]._tx + 1, towner[t]._ty);
SpawnRewardItem(IDI_AURIC, towner[t]._tx + 1, towner[t]._ty);
quests[QTYPE_FARMER]._qactive = 10;
quests[QTYPE_FARMER]._qlog = 0;
break;

2
comparer-config/hellfire.toml

@ -4878,7 +4878,7 @@ addr = 0x43D2B1
size = 0x230
[[func]]
name = "M_DefilerDeath"
name = "SpawnLoot"
addr = 0x43D4E1
size = 0x174

Loading…
Cancel
Save