Browse Source

Fix mapping objects and monsters

Added sound to fire trap lever
Added damage to fire trap

Fix rendering of skull pile

Remove one to many hellfire monsters

Remove duplicate items from ObjTypeConv
Remove slain hero (crashes game on low level heros)
Remove water (it's miss aligned and not realy useful)
Added trap variants of all chests
Added book stand
Removed door objects (they aren't of much use and will crash the game if
used on the wrong levels)
Rmoved all story books (crashes game if not use on the right level, tied
to specific quests etc)
pull/828/head
Anders Jenbo 6 years ago
parent
commit
cd2f7fc4d4
  1. 53
      Source/monstdat.cpp
  2. 18
      Source/objdat.cpp
  3. 15
      Source/objects.cpp

53
Source/monstdat.cpp

@ -257,33 +257,32 @@ BYTE MonstConvTbl[] = {
MT_NZOMBIE,
MT_BIGFALL,
MT_DARKMAGE,
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Reserved for Hellfire
0, // Hellfire: Hellboar
0, // Hellfire: Stinger
0, // Hellfire: Psychorb
0, // Hellfire: Arachnon
0, // Hellfire: Felltwin
0, // Hellfire: Hork Spawn
0, // Hellfire: Stinger (duplicate)
0, // Hellfire: Psychorb (duplicate)
0, // Hellfire: Arachnon (duplicate)
0, // Hellfire: Lashworm
0, // Hellfire: Torchant
0, // Hellfire: Hork Demon
0, // Hellfire: Hell Bug
0, // Hellfire: Gravedigger
0, // Hellfire: Tomb Rat
0, // Hellfire: Firebat
0, // Hellfire: Skullwing
0, // Hellfire: Lich
0, // Hellfire: Crypt Demon
0, // Hellfire: Firebat (duplicate)
0, // Hellfire: Skullwing (duplicate)
0, // Hellfire: Lich (duplicate)
0, // Hellfire: Biclops
0, // Hellfire: Flesh Thing
0, // Hellfire: Reaper
0, // Hellfire: Na-Krul
MT_CLEAVER,
MT_INVILORD,
MT_LRDSAYTR,

18
Source/objdat.cpp

@ -127,12 +127,8 @@ int ObjTypeConv[] = {
OBJ_BOOKSHELF,
OBJ_BOOKCASEL,
OBJ_BOOKCASER,
OBJ_ARMORSTAND,
OBJ_ARMORSTANDN,
OBJ_WEAPONRACK,
OBJ_WEAPONRACKN,
OBJ_SLAINHERO,
OBJ_WATER,
OBJ_BLOODFTN,
OBJ_PURIFYINGFTN,
OBJ_SHRINEL,
@ -141,17 +137,11 @@ int ObjTypeConv[] = {
OBJ_MURKYFTN,
OBJ_TEARFTN,
OBJ_DECAP,
OBJ_TCHEST1,
OBJ_TCHEST2,
OBJ_STORYBOOK,
OBJ_L1LDOOR,
OBJ_L1RDOOR,
OBJ_L2LDOOR,
OBJ_L2RDOOR,
OBJ_L3LDOOR,
OBJ_L3RDOOR,
OBJ_BLINDBOOK,
OBJ_BLOODBOOK,
OBJ_TCHEST3,
OBJ_LAZSTAND,
OBJ_BOOKSTAND,
};
/** Contains the data related to each object ID. */
@ -172,7 +162,7 @@ ObjDataStruct AllObjects[99] = {
{ 3, OFILE_BANNER, 0, 0, DTYPE_TOWN, THEME_SKELROOM, -1, 0, 2, 0, 96, TRUE, TRUE, TRUE, 0, 0, FALSE },
{ 3, OFILE_BANNER, 0, 0, DTYPE_TOWN, THEME_SKELROOM, -1, 0, 1, 0, 96, TRUE, TRUE, TRUE, 0, 0, FALSE },
{ 3, OFILE_BANNER, 0, 0, DTYPE_TOWN, THEME_SKELROOM, -1, 0, 3, 0, 96, TRUE, TRUE, TRUE, 0, 0, FALSE },
{ 2, OFILE_SKULPILE, 1, 4, DTYPE_TOWN, THEME_NONE, -1, 0, 0, 1, 96, TRUE, TRUE, TRUE, 0, 0, FALSE },
{ 2, OFILE_SKULPILE, 1, 4, DTYPE_TOWN, THEME_NONE, -1, 0, 1, 1, 96, TRUE, TRUE, TRUE, 0, 0, FALSE },
{ 2, OFILE_L1BRAZ, 0, 0, DTYPE_TOWN, THEME_NONE, -1, 0, 0, 0, 0, FALSE, FALSE, FALSE, 0, 0, FALSE },
{ 2, OFILE_L1BRAZ, 0, 0, DTYPE_TOWN, THEME_NONE, -1, 0, 0, 0, 0, FALSE, FALSE, FALSE, 0, 0, FALSE },
{ 2, OFILE_L1BRAZ, 0, 0, DTYPE_TOWN, THEME_NONE, -1, 0, 0, 0, 0, FALSE, FALSE, FALSE, 0, 0, FALSE },

15
Source/objects.cpp

@ -1622,6 +1622,18 @@ void Obj_FlameTrap(int i)
if (object[i]._oVar4)
ActivateTrapLine(object[i]._otype, object[i]._oVar1);
} else {
int damage[4] = { 6, 8, 10, 12 };
int mindam = damage[leveltype - 1];
int maxdam = mindam * 2;
x = object[i]._ox;
y = object[i]._oy;
if (dMonster[x][y] > 0)
MonsterTrapHit(dMonster[x][y] - 1, mindam / 2, maxdam / 2, 0, MIS_FIREWALLC, FALSE);
if (dPlayer[x][y] > 0)
PlayerMHit(dPlayer[x][y] - 1, -1, 0, mindam, maxdam, MIS_FIREWALLC, FALSE, 0);
if (object[i]._oAnimFrame == object[i]._oAnimLen)
object[i]._oAnimFrame = 11;
if (object[i]._oAnimFrame <= 5)
@ -2672,6 +2684,9 @@ void OperateTrapLvr(int i)
frame = object[i]._oAnimFrame;
j = 0;
if (!deltaload)
PlaySfxLoc(IS_LEVER, object[i]._ox, object[i]._oy);
if (frame == 1) {
object[i]._oAnimFrame = 2;
for (; j < nobjects; j++) {

Loading…
Cancel
Save